Arithmetic encoders, arithmetic decoders, methods for arithmetic encoding, methods for arithmetic decoding, computer programs, encoded representations and data streams for state variable updating and / or for state variable initialization
The dual adaptation rate mechanism in arithmetic encoders and decoders addresses inefficiencies in entropy coding by rapidly adapting to probability distributions, enhancing coding efficiency and reducing complexity through optimized initialization and context modeling.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
- Filing Date
- 2025-10-30
- Publication Date
- 2026-05-07
AI Technical Summary
Existing entropy coding methods suffer from suboptimal coding efficiency due to improper initialization and starting mechanisms, leading to increased computational load and inefficiency.
An arithmetic encoder and decoder that utilize a dual adaptation rate mechanism for state variable updates, employing a faster rate initially followed by a slower rate after a predetermined number of steps, coupled with efficient initialization methods based on quantization parameters and context models, to adapt to probability distributions effectively.
This approach enables faster convergence to near-optimal state variables, improving coding efficiency and reducing computational complexity while maintaining precise adaptation to underlying data probabilities.
Smart Images

Figure EP2025081451_07052026_PF_FP_ABST
Abstract
Description
[0001] Arithmetic Encoders, Arithmetic Decoders, Methods for Arithmetic Encoding, Methods for Arithmetic Decoding, Computer Programs, Encoded Representations and Data
[0002] Streams for State Variable Updating and / or for State Variable Initialization
[0003] Description
[0004] Technical Field
[0005] Embodiments comprise arithmetic encoders, arithmetic decoders, methods for arithmetic encoding, methods for arithmetic decoding, computer programs, encoded representations and data streams for state variable updating and / or for state variable initialization.
[0006] Embodiments comprise apparatuses, methods, computer programs and bitstreams for CABAC context model initialization for waveform coding and fast start mechanism.
[0007] Background of the Invention
[0008] Entropy coding provides for state-of-the-art methods for data compression. It enables reducing redundancy and hence an efficient transmission of data. However, the efficiency of such methods is highly dependent on initialization and starting mechanisms of the coder. Improper starting conditions may cause suboptimal coding and hence increased load on the bitstream.
[0009] Hence, there is a desire for an improved concept for starting mechanisms for arithmetic coding, which achieves a better compromise regarding coding efficiency, computational effort and complexity.
[0010] This is achieved by the subject matter of the independent claims of the present application.
[0011] Further embodiments according to the invention are defined by the subject matter of the dependent claims.
[0012] Summary of the Invention
[0013] An embodiment according to the invention comprises an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video
[0014] FV -ACr - FH241023PEP-2025349100.DQCX signal), wherein the arithmetic encoder is configured to derive an interval size information (e.g. an interval size for a less probable symbol; e.g. R PS) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (e.g. s0and s-i) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously encoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), wherein the arithmetic encoder is configured to update the one or more state variable values (e.g. s0and s-i) in dependence on an encoded symbol, in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol; wherein the arithmetic encoder is configured to use a first, comparatively faster adaptation rate for an update of one or more of the state variable values for a predetermined number of adaptation steps (e.g. following an initialization of the one or more state variable values; e.g. following a start of the encoding); and wherein the arithmetic encoder is configured to use a second, comparatively slower adaptation rate for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed (e.g. following an initialization of the one or more state variable values).
[0015] It was recognized that an adaptation of an update mechanism of one or more state variable values, based on which the interval size information for the arithmetic coding is obtained, for a predetermined number of adaptation steps after initialization of said one or more state variable values, enables improving the coding efficiency.
[0016] Based on the switching between the different adaptation rates, a fast start mechanism may be provided. For example, during the predetermined number of adaptation steps, a faster approximation of the probability distribution of the data may be achieved.
[0017] Hence, even given suboptimal initialization values for the one or more state variable values, a faster convergence to at least near optimal state variable values may be achieved.
[0018] After the predetermined number of adaptation steps, the adaptation rate may be reduced, in order to enable a more fine-tuned adaptation of the probability estimator (e.g. in the form of a context model characterized by the state variable values).
[0019] In particular, it is to be noted that an updating of only a subset of a plurality of state variables or of all state variables may be adapted.
[0020] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic encoder is configured to derive the interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for the arithmetic encoding of one or more symbol values to be encoded on the basis of a first state variable value comprising, in a normal mode of operation, a first adaptation time constant, and on the basis of a second state variable value comprising, in a normal mode of operation, a second adaptation time constant, wherein the second adaptation time constant is longer (e.g. by a factor of at least 2, or by a factor of at least 5, or by a factor of at least 10, or by a factor of at least 20) than the first adaptation time constant, wherein the arithmetic encoder is configured to use the first, comparatively faster adaptation rate for an update of the first state variable values for a predetermined number of adaptation steps (e.g. following an initialization of the one or more state variable values; e.g. following a start of the encoding), and wherein the arithmetic encoder is configured to determine the second state variable value to be a scaled version of the first state variable value for the predetermined number of adaptation steps (e.g. such that the second state variable value is derived from the first state variable value using a bit shift, or such that the second state variable value is a bit-shifted version of the first state variable value for the predetermined number of adaptation steps).
[0021] It was recognized that a use of adaptation time constants provides simple but efficient means to set an adaptation speed of a state variable update. Moreover, it was recognized that it is particularly efficient to couple the second state variable in the start-up phase with the (e.g. faster) first state variable.
[0022] In the normal operating mode, the different adaptation time constants may enable incorporating longer-time and shorter-time changes of the coded symbols, regarding their underlying probability distribution, for the adaptation of the state of the estimator (e.g. for an adaptation of a context model).
[0023] Hence, it was recognized that a simple but effective method for enabling a quick state variable value adaptation (e.g. context adaptation) may be achieved by bypassing such a sophisticated two-timescale-tracking (e.g. the state variable with the normally faster adaptation rate incorporating a more short-term history of coded data in the probability estimation, and the state variable with the normally slower adaptation rate incorporating a more long-term history of coded data in the probability estimation), and to update both state variable values based on the faster of the two adaptation time rates.
[0024] FV -ACr - FH241023PEP-2025349100.DOCX Furthermore, the scaling enables a computationally efficient tracking mechanism for the second state variable value in dependence on the first state variable value. As an example, the encoder may optionally comprise a counter in order to track a number of adaptation steps.
[0025] According to an embodiment of the invention, the arithmetic encoder is configured to independently update the first state variable value and the second state variable value (e.g. in dependence on a recently encoded symbol; e.g. such that the second state variable value is no longer a bit shifted version of the first state variable value) when the predetermined number of adaptation steps is completed.
[0026] This may enable a more fine-tuned, and hence e.g. slower, adaptation to an underlying probability distribution of the data.
[0027] According to an embodiment of the invention, the arithmetic encoder is configured to derive the second state variable from the first state variable value using a bit shift operation for the predetermined number of adaptation steps.
[0028] This may, for example, provide for a scaling of the first state variable value, e.g. a computationally efficient scaling approach or at least an approximation of such a scaling, e.g. a scaling with a rounding operation.
[0029] According to an embodiment of the invention, the arithmetic encoder is configured to initialize the first state variable value and the second state variable value to take respective initial values, wherein the arithmetic encoder is configured to update the first state variable value using the first, comparatively faster adaptation rate in dependence on respective encoded symbols for a predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, wherein the arithmetic encoder is configured to obtain the second state variable value as a scaled (e.g. bit-shifted) version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, wherein the arithmetic encoder is configured to update the first state variable value using the second, comparatively slower adaptation rate when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; and wherein the arithmetic encoder is configured to update the second state variable value using a third adaptation rate, which is slower than the first adaptation rate and the second adaptation
[0030] FV -ACr - FH241023PEP-2025349100.DOCX rate, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
[0031] Hence, it was recognized that apart from a fast start mechanism, for example, a “slower than normal” adaptation rate mode may allow a very precise approximation of the underlying probability distribution of the data (e.g. using the second adaptation rate for the first state variable value and the third adaptation rate for the second state variable value, which may be slower than their respective adaptation rates in the normal operating mode). Furthermore, the adaptation rates may be set using adaptation time constants, hence, a re-use of a second adaptation time constant for the first state variable value (e.g. in addition to the second state variable value) may be particularly efficient.
[0032] According to an embodiment of the invention, the arithmetic encoder is configured to evaluate a lookup table (e.g. lookupTableHyp) in order to update the first state variable value, wherein the arithmetic encoder is configured to select an entry of the lookup table in dependence on a current value of the first state variable value and in dependence on a respective encoded symbol, wherein the arithmetic encoder is configured to increase or decrease the first state variable value in dependence on the selected entry of the lookup table and in dependence on the respective encoded symbol, wherein the selected entry of the lookup table (e.g. add), scaled according to a scaling factor (e.g. according to (add«(b0-8))»1), determines a magnitude of the increase or decrease of the first state variable value, and wherein the respective encoded symbol determines whether the first state variable value is increased or decreased.
[0033] Furthermore, the arithmetic encoder is configured to use a comparatively larger scaling factor (resulting in a comparatively larger increase or decrease of the first state variable value) for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, and the arithmetic encoder is configured to use a comparatively smaller scaling factor (resulting in a comparatively smaller increase or decrease of the first state variable value) when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
[0034] Furthermore, the arithmetic encoder is configured to obtain the second state variable value as a scaled version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values; and the arithmetic encoder is configured to
[0035] FV -ACr - FH241023PEP-2025349100.DOCX select another entry of the lookup table in dependence on a current value of the second state variable value and in dependence on the respective encoded symbol, and to increase or decrease the second state variable value in dependence on the selected another entry of the lookup table and in dependence on the respective encoded symbol, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein the selected entry of the lookup table (e.g. add), scaled according to a scaling factor (e.g. according to (add«(b1 -8))»1), determines a magnitude of the increase or decrease of the first state variable value, and wherein the respective encoded symbol determines whether the first state variable value is increased or decreased.
[0036] It was recognized that the above table-based approach allows for a particularly efficient state variable update and that an adaptation of a scaling factor enables providing different operating modes, e.g. such as a fast start functionality (or modes with distinctively slow adaptation rates, or adaptation rates in between).
[0037] According to an embodiment of the invention, wherein the arithmetic encoder is configured to determine a combined state variable value on the basis of the first state variable value and the second state variable value according to wherein the arithmetic encoder is configured to determine a table index value tabldx according to tabldx = abs(s » (bmax— 5)) wherein the arithmetic encoder is configured to determine a subintervall width RLPS for the less probable symbol according to
[0038] RLPS = rlpsTable2D[taWdx][(7? - 256) » 5],
[0039] (wherein, for example, rlpsTable2D is defined as rpsTable2D
[0032] [8] = {
[0040] { 128, 142, 156, 171 , 185, 199, 213, 228 }, { 112, 125, 137, 150, 162, 175, 187, 200 }, { 97, 108, 119, 130, 141, 152, 163, 174 }, { 84, 93, 103, 112, 121 , 131 , 140, 150 }, { 74, 82, 90, 99, 107, 115, 123, 132 },
[0041] { 65, 72, 79, 87, 94, 101, 108, 116 },
[0042] { 57, 63, 70, 76, 82, 89, 95, 102 },
[0043] { 50, 56, 61 , 67, 73, 78, 84, 90 },
[0044] FV -ACr - FH241023PEP-2025349100.DOCX { 45, 50, 55, 60, 65, 70, 75, 80 },
[0045] { 39, 43, 48, 52, 56, 61, 65, 70},
[0046] { 34, 38, 42, 46, 50, 54, 58, 62 },
[0047] { 30, 33, 37, 40, 43, 47, 50, 54},
[0048] { 27, 30, 33, 36, 39, 42, 45, 48 },
[0049] { 23, 26, 28, 31, 34, 36, 39, 42},
[0050] { 20, 22, 24, 27, 29, 31, 33, 36},
[0051] { 18, 20, 22, 24, 26, 28, 30, 32},
[0052] { 15, 17, 19, 21, 22, 24, 26, 28},
[0053] { 14, 16, 17, 19, 21, 22, 24, 26},
[0054] { 12, 13, 15, 16, 17, 19, 20, 22},
[0055] { 11, 12, 13, 15, 16, 17, 18, 20},
[0056] { 10, 11, 12, 13, 14, 15, 16, 18},
[0057] { 9, 10, 11, 12, 13, 14, 15, 16},
[0058] { 7, 8, 9, 10, 11, 12, 13, 14}
[0059] { 7, 8, 9, 10, 11, 12, 13, 14}
[0060] { 5, 6, 6, 7, 8, 8, 9, 10},
[0061] { 5, 6, 6, 7, 8, 8, 9, 10},
[0062] { 4, 5, 5, 6, 6, 7, 7, 8},
[0063] { 4, 5, 5, 6, 6, 7, 7, 8},
[0064] { 3, 3, 4, 4, 4, 5, 5, 6},
[0065] { 3, 3, 4, 4, 4, 5, 5, 6},
[0066] { 2, 2, 2, 3, 3, 3, 3, 4},
[0067] { 2, 2, 2, 3, 3, 3, 3, 4} wherein R is a coding interval width (e.g. before interval subdivision); wherein the arithmetic encoder is configured to arithmetically encode a (current) symbol to be encoded using the subintervall width RLPS for the less probable symbol, wherein the arithmetic encoder is configured to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ s0) » (b0- 5))]
[0068] FV-ACr- FH241023PEP-2025349100.DOCX for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, and to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ s^ » ( - 5))] when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein bin designates a respective (recently) encoded symbol, wherein bi>b0>=7; wherein w1>w0>1;
[0069] (wherein, for example, bo=1O, bi=13, or wherein, for example, b0=8, bi=12, wherein, for example, the predetermined number of adaptation steps comprises 63 adaptation steps) (wherein, for example, lookupTableHyp is defined as provided in the description).
[0070] It was recognized that the above-discussed approach is particularly efficient.
[0071] An embodiment according to the invention comprises an arithmetic encoder for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), wherein the arithmetic encoder is configured to derive an interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (e.g. s0and s-i) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously encoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), wherein the arithmetic encoder is configured to update the one or more state variable values (e.g. s0and Si) in dependence on an encoded symbol (e.g. in dependence on a respective encoded symbol), in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol; wherein the arithmetic encoder is configured to determine one or more initialization values for the one or more state variable values (e.g. s0,Si) in dependence on a quantization parameter (e.g. qp) which determines a quantization step size for a quantization of one or more values to be encoded using the symbols.
[0072] FV -ACr - FH241023PEP-2025349100.DOCX It was recognized that particularly good initialization values for the one or more state variable values may be obtained if the same are derived in dependence on the quantization parameter, which determines a quantization step size for a quantization of one or more values to be encoded using the symbols.
[0073] It was recognized that a first approximation of the probability distribution of the data to be coded can be obtained on the basis of the quantization granularity, e.g. as represented by the quantization parameter.
[0074] Hence, a finer or coarser quantization step size may provide indications about the underlying probability distribution of the data, that is to be approximated by the state space variable values.
[0075] Accordingly, with better initialization values, an improved coding efficiency may be achieved.
[0076] According to an embodiment of the invention, the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. s0,s1) using a substantially linear mapping (e.g. linear except for quantization effects and / or rounding effects), which maps the quantization parameter (e.g. qp) onto an intermediate state value (e.g. inistate)(also designates as an initial state value).
[0077] The linear mapping may be performed in a computationally efficient manner. Furthermore, the mapping of the quantization parameter onto an intermediate state value enables reducing a signaling effort, e.g. compared to providing comprehensive tables for a direct mapping of the quantization parameter to the initialization values of the one or more state variable values.
[0078] According to an embodiment of the invention, the arithmetic encoder is configured to obtain one or more initialization values (e.g. s0,Si) of the one or more state variable values using one or more clipped (substantially) linear mappings (e.g. a sequence of mappings initState=inistate«(bi-7) and Si=min(max(initState,clip),(1 «bi)-clip)-center, wherein the latter mapping comprises a clipping functionality), wherein a respective one of the one or more clipped linear mappings linearly maps the intermediate state value (e.g. inistate) onto a respective initialization value of a respective state variable value (e.g. s0,s1) while limiting (i.e. clipping) a range of values of the initialization value to a predetermined range (e.g. from clip to (1 «bi)-clip).
[0079] This enables preventing overflows and may improve robustness against outliers.
[0080] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. s0,s1) using a substantially linear mapping (e.g. linear except for quantization effects and / or rounding effects), which maps the quantization parameter (e.g. qp) onto an intermediate state value (e.g. inistate) or, for example onto a respective initialization value of a respective state variable value.
[0081] This may allow a use of simplified or low-complexity computation operations, hence increasing an efficiency of the coding approach.
[0082] According to an embodiment of the invention, the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. s0,Si) using one or more clipped (substantially) linear mappings (wherein a clipped substantially linear mapping is defined, for example, by a sequence of mappings currQP=qp-qpPosProbO, inistate_num=currQP*slopeMul+(probStart«log2qpRange), inistate=(initstate_num+add)»log2qpRange, initState=inistate«(bi-7) and
[0083] Si=min(max(initState,clip),(1 «bi)-clip)-center, wherein the latter mapping comprises a clipping functionality), wherein a respective one of the one or more clipped linear mappings linearly maps the quantization parameter (e.g. qp) onto a respective initialization value of a respective state variable value (e.g. s0,s1) while limiting (i.e. clipping) a range of values of the initialization value to a predetermined range (e.g. from clip to (1 «bi)-clip).
[0084] This may provide for an efficient mapping mechanism.
[0085] According to an embodiment of the invention, wherein the arithmetic encoder is configured to obtain a first support value (e.g. probStart); wherein the arithmetic encoder is configured to obtain a second support value (e.g. probEnd); wherein the arithmetic encoder is configured to obtain a quantization parameter mapping start value (e.g. qpPosProbO) describing a value of the quantization parameter (e.g. qp) which is mapped onto the first support value (interpolation value) of the linear mapping (e.g. describing a value of the quantization parameter qp for which an intermediate state value (e.g. inistate) is equal the first support value); wherein the arithmetic encoder is configured to obtain a quantization parameter mapping range value (e.g. e.g. log2qpRange) (e.g. in an integer valued logarithmic representation) describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value (interpolation value) of the linear mapping (wherein, for example, for qp=qpPosProbO+(1«log2qpRange, the intermediate state value , onto which qp is mapped, is equal to the second support value).
[0086] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic encoder is configured to map the quantization parameter onto the one or more initialization values using the first support value, the second support value, the quantization parameter mapping start value and the quantization parameter range value (wherein the first support value , the second support value, the quantization parameter mapping start value and the quantization parameter range value define a substantially linear mapping of the quantization parameter onto in intermediate state value, also designated as an initial state value).
[0087] Based on the first and second support values, quantization parameter mapping start value and quantization parameter mapping range value, reference points for an interpolation may be provided, so as to efficiently provide a mapping rule from the quantization parameter to the initialization values or respectively from the intermediate state value to the initialization values.
[0088] According to an embodiment of the invention, the arithmetic encoder is configured to determine a slope value (e.g. slopeMul) in dependence on a difference between the second support value (e.g. probEnd) and the first support value (e.g. probStart) (wherein, for example, the slope value may be equal to the difference between the second support value and the first support value); wherein the arithmetic encoder is configured to determine a quantization parameter deviation value (e.g. currQP) using a difference between the quantization parameter value (e.g. qp) and the quantization parameter mapping start value (e.g. qpPosProbO) (wherein, for example, the quantization parameter deviation value may be equal to the difference between the quantization parameter value and the quantization parameter mapping start value); and wherein the arithmetic encoder is configured to determine the intermediate state value (e.g. inistate_num or inistate) using a combination (e.g. summation) of a product of the slope value (e.g. slopeMul) and of the quantization parameter deviation value (e.g. currQP) with a scaled version (e.g. probStart«log2qpRange) of the first support value (e.g. probStart).
[0089] It was recognized that the above mapping approach enables for an efficient mapping of the quantization parameter value, in order to obtain the initialization values.
[0090] According to an embodiment of the invention, the arithmetic encoder is configured to obtain a first support value (e.g. probStart), a second support value (e.g. probEnd), a quantization parameter mapping start value (e.g. qpPosProbO) describing a value of the quantization parameter which is mapped onto the first support value (interpolation value) using a linear mapping, and a quantization parameter mapping range value (e.g. e.g. log2qpRange) (e.g. in an integer valued logarithmic representation) describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is
[0091] FV -ACr - FH241023PEP-2025349100.DQCX mapped onto the second support value (interpolation value) using the linear mapping on the basis of a (single) initialization value (e.g. an initialization value comprising between 8 bit and 12 bit; e.g. a 12 bit initialization value).
[0092] According to an embodiment of the invention, the arithmetic encoder is configured to derive the quantization parameter mapping start value (e.g. qpPosProbO) on the basis of a first block (qpPosBrobOBits) of two bits of initialization value (e.g. initValue) (e.g. such that the quantization parameter mapping start value can take four different values)(e.g. such that the quantization parameter mapping start value can take values of 0, 2, 6 and 14), wherein the arithmetic encoder is configured to derive the quantization parameter mapping range value (e.g. e.g. log2qpRange) on the basis of a second block (log2qpRangeBits) of two bits of initialization value (e.g. initValue) (e.g. such that the quantization parameter mapping range value can take four different values)(e.g. such that the quantization parameter mapping range value can take values of 3, 4, 5 and 6), wherein the arithmetic encoder is configured to derive the first support value (e.g. probStart) on the basis of a third block (probStartBits) of four bits of initialization value (e.g. initValue) (e.g. such that the first support value can take 16 different values), wherein the arithmetic encoder is configured to derive the second support value (e.g. probEnd) on the basis of a fourth block (probEndBits) of four bits of initialization value (e.g. initValue) (e.g. such that the first support value can take 16 different values).
[0093] It was recognized that the above-discussed “disassembly” of the initialization value enables an efficient provision of the quantization parameter mapping start value, the quantization parameter mapping range value and the first and second support value.
[0094] According to an embodiment of the invention, the arithmetic encoder is configured to derive the quantization parameter mapping start value qpPosProbO on the basis of a (first) block qpPosBrobOBits of two bits (e.g. of the initialization value; e.g. of initValue) according to qpPosProbO = (2 « qpPosProbOBits) - 2.
[0095] According to an embodiment of the invention, the arithmetic encoder is configured to derive the quantization parameter mapping range value log2qpRange on the basis of a (second) block log2qpRangeBits of two bits (e.g. of the initialization value; e.g. of initValue) according to log2qpRange = log2qpRangeBits + 3.
[0096] It was recognized that the above-implementations are particularly efficient.
[0097] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, wherein the arithmetic encoder is configured to derive the first support value probStart on the basis of a (third) block probStartBits of four bits (e.g. of the initialization value; e.g. of initValue) (e.g. such that the first support value can take 16 different values), according to probStart = probStartBits * 8 and wherein the arithmetic encoder is configured to derive the second support value probEnd on the basis of a (fourth) block probEndBits of four bits (e.g. of the initialization value; e.g. of initValue) (e.g. such that the first support value can take 16 different values), according to probEnd = probEndBits * 8.
[0098] It was recognized that the above-implementation is particularly efficient.
[0099] According to an embodiment of the invention, the arithmetic encoder is configured to obtain a first block of two bits (e.g. qpPosProbOBits) representing the quantization parameter mapping start value, a second block of two bits (log2qpRangeBits) representing the quantization parameter mapping range value (e.g. e.g. log2qpRange), a third block of four bits (probStartBits) representing the first support value (e.g. probStart) and a fourth block of four bits (probEndBits) representing the first support value (e.g. probEnd) on the basis of the initialization value initValue according to qpPosProbOBits = initValue & 3 log2qpRangeBits = (initValue » 2) & 3 probStartBits = (initValue » 4) & 15 probEndBits = (initValue » 8) & 15.
[0100] It was recognized that the above-implementation is particularly efficient.
[0101] According to an embodiment of the invention, the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. s0,Si) using one or more (substantially) linear mappings (e.g. linear interpolations), respectively followed by a clipping operation (wherein a clipped substantially linear mapping is defined, for example, by a sequence of mappings currQP=qp-qpPosProbO, inistate_num=currQP*slopeMul+(probStart«log2qpRange), inistate=(initstate_num+add)»log2qpRange, initstate=inistate«(bi-5) and
[0102] Si=min(max(initState,clip),(1«bi)-clip)-center, wherein the latter mapping comprises a clipping functionality).
[0103] This may enable limiting the mappings efficiently on a valid range.
[0104] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic encoder is configured to obtain an initialization value of a first state variable value using a (substantially) linear mapping (e.g. linear interpolation), followed by clipping operation, or wherein the arithmetic encoder is configured to obtain an initialization value of a first state variable value using a sequence of (substantially) linear mappings (e.g. linear interpolation), followed by clipping operation; and wherein the arithmetic encoder is configured to obtain an initialization value of a second state variable value using a (substantially) linear mapping (e.g. linear interpolation), followed by clipping operation, or wherein the arithmetic encoder is configured to obtain an initialization value of a second state variable value using a sequence of (substantially) linear mappings (e.g. linear interpolation), followed by clipping operation.
[0105] It was recognized that the mapping and clipping approach is particularly efficient for initializing a plurality of state variable values.
[0106] According to an embodiment of the invention, the arithmetic encoder is configured to obtain an intermediate state value inistate for a determination of an initialization value of a state variable si in dependence on a quantization parameter qp according to slopeMul = probEnd - probStart add = (1 « log2qpRange) » 1 currQP = qp - qpPosProbO inistate_num = currQP * slopeMul + (probStart « log2qpRange) inistate = (inistate_num + add ) » log2qpRange wherein probStart is a first support value (which may, for example, be obtained on the basis of initialization value initValue, e.g. on the basis of a third block (probStartBits) of four bits of initialization value (e.g. initValue) (e.g. such that the first support value can take 16 different values), wherein probEnd is a second support value (which may, for example, be obtained on the basis of initialization value initValue, e.g. on the basis of a fourth block (probEndBits) of four bits of initialization value (e.g. initValue)) (e.g. such that the second support value can take 16 different values), wherein log2qpRange is a quantization parameter mapping range value (e.g. in a logarithmic representation) (which is obtained, for example, on the basis of a (second) block log2qpRangeBits of two bits (e.g. of the initialization value; e.g. of initValue)), wherein qpPosProbO is a quantization parameter mapping start value (which may, for example, be obtained on the basis of a (first) block qpPosBrobOBits of two bits (e.g. of the initialization value; e.g. of initValue)).
[0107] FV -ACr - FH241023PEP-2025349100.DQCX According to an embodiment of the invention, the arithmetic encoder is configured to obtain an initialization value of a state variable si (e.g. of a first state variable value sO and of a second state variable value s1) (e.g. with i=1 or i=2) according to initState = inistate « (b; - 7) clip = 1 « (bi - 5) center = 1 « (^ - 1) si = min( max( initState, clip ), (1«b;) - clip ) - center wherein bi is a number of bits used for representing the state variable value si.
[0108] It was recognized that the above-implementations are particularly efficient.
[0109] According to an embodiment of the invention, the arithmetic encoder is configured to encode a plurality of channel signals by arithmetically encoding one or more respective symbol values representing sample values of the respective channel signals; wherein the arithmetic encoder is configured to use a plurality of (e.g. a set of) channel context models per channel signal, wherein separate (e.g. different) sets of context models are used for the encoding of different channel signals; wherein the arithmetic encoder is configured to initialize state variables of (separate) channel context models associated with an encoding of different channel signals using identical initialization values (e.g. such that separate but corresponding channel context models associated with the encoding of different channel signals share same initialization values, wherein different context models used for an encoding of a given channel signal may comprise different initialization values.).
[0110] Hence, an initialization effort may be reduced, whilst still providing good initialization values for an approximation of the probability distribution of the data to be encoded.
[0111] According to an embodiment of the invention, the arithmetic encoder is configured to select a common (global) set of initialization values for initializing state variables for an arithmetic encoding of a plurality of channel signals, and wherein the arithmetic encoder is configured to include a signaling information (e.g. a flag or a signaling value), defining the selected common set of initialization values, into the encoded representation.
[0112] This may reduce a signaling effort.
[0113] According to an embodiment of the invention, the arithmetic encoder is configured to decide whether to use a same set of initialization values for initializing state variables of (separate) channel context models associated with the encoding of different channel signals, or whether
[0114] FV -ACr - FH241023PEP-2025349100.DOCX to use separate sets of initialization values for initializing state variables of (separate) channel context models associated with the encoding of different channel signals, and wherein the arithmetic encoder is configured to include a signaling information indicating whether to use a same set of initialization values for initializing state variables of (separate) channel context models (e.g. when decoding the different channel signals), or whether to use separate sets of initialization values for initializing state variables of (separate) channel context models (e.g. when decoding the different channel signals) into an encoded representation (comprising an encoded representation of the plurality of symbols).
[0115] Hence, a selective adaptation of the initialization may be achieved, e.g. depending on whether a use of separate sets of initialization values for initializing state variables achieves a substantial improvement, e.g. in view of the additional complexity and / or signaling effort and / or computational effort.
[0116] According to an embodiment of the invention, the arithmetic encoder is configured to include, into an encoded representation (comprising an encoded representation of the plurality of symbols), a signaling information (e.g. a one bit flag) indicating whether a further signaling information (e.g. a further syntax element per channel), indicating on a per channel basis which initialization value or set of initialization value, out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used, is included into the encoded representation.
[0117] This may enable to increase the signaling efficiency.
[0118] According to an embodiment of the invention, the arithmetic encoder is configured to selectively include, into an encoded representation (comprising an encoded representation of the plurality of symbols), a per-channel signaling information (e.g. a further syntax element per channel), indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used.
[0119] This may allow setting individually adapted initialization values on a per channel basis, allowing for a faster adaptation of the estimator to the true probability distribution of the data to be encoded.
[0120] According to an embodiment of the invention, the per-channel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization
[0121] FV -ACr - FH241023PEP-2025349100.DOCX values or which set of initialization values out of a plurality of candidate sets of initialization values should be used, is a one bit information (e.g. encoded using one bin and using one context model).
[0122] This enables an efficient signaling.
[0123] According to an embodiment of the invention, the arithmetic encoder is configured to update a first state variable value s0and a second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ s^ » ( - 5))]
[0124] S( = S( + sign ■ add wherein bin designates a respective (recently) encoded symbol, wherein b1>b0>=7; wherein w1>w0>1 ; (wherein, for example, b0=10, b1=13, or wherein, for example, b0=8, b1=12, wherein, for example, the predetermined number of adaptation steps comprises 63 adaptation steps) (wherein, for example, lookupTableHyp is defined as provided in the description).
[0125] It was recognized that the above-implementation is particularly efficient.
[0126] Some inventive embodiments have been explained in the context of an encoder and other inventive embodiments will be explained, in the following, in the context of a decoder. It is to be noted that features, functionalities and details that are explained in the context of an encoder may be implemented analogously in or added to or used with a corresponding decoder (e.g. directly, or in an accordingly adapted manner), both individually or taken in combination. Vice versa, features, functionalities and details as disclosed for inventive decoders may be incorporated in corresponding encoders. Accordingly, it is to be noted that decoders and corresponding encoders (or vice versa) may be based on similar and / or equivalent inventive concepts and may hence comprise corresponding advantages.
[0127] An embodiment according to the invention comprises an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), wherein the arithmetic decoder is configured to derive an interval size information (e.g. an interval size for a less probable symbol; e.g. R PS) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (e.g. s0and Si) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated
[0128] FV -ACr - FH241023PEP-2025349100.DOCX with a given context model), which represent statistics of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), wherein the arithmetic decoder is configured to update the one or more state variable values (e.g. s0and Si) in dependence on an decoded symbol, in order to obtain one or more updated sate variable values for an decoding of a subsequent symbol; wherein the arithmetic decoder is configured to use a first, comparatively faster adaptation rate for an update of one or more of the state variable values for a predetermined number of adaptation steps (e.g. following an initialization of the one or more state variable values; e.g. following a start of the decoding); and wherein the arithmetic decoder is configured to use a second, comparatively slower adaptation rate for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed (e.g. following an initialization of the one or more state variable values).
[0129] According to an embodiment of the invention, the arithmetic decoder is configured to derive the interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for the arithmetic decoding of one or more symbol values to be decoded on the basis of a first state variable value comprising, in a normal mode of operation, a first adaptation time constant, and on the basis of a second state variable value comprising, in a normal mode of operation, a second adaptation time constant, wherein the second adaptation time constant is longer (e.g. by a factor of at least 2, or by a factor of at least 5, or by a factor of at least 10, or by a factor of at least 20) than the first adaptation time constant, wherein the arithmetic decoder is configured to use the first, comparatively faster adaptation rate for an update of the first state variable values for a predetermined number of adaptation steps (e.g. following an initialization of the one or more state variable values; e.g. following a start of the decoding), and wherein the arithmetic decoder is configured to determine the second state variable value to be a scaled version of the first state variable value for the predetermined number of adaptation steps (e.g. such that the second state variable value is derived from the first state variable value using a bit shift, or such that the second state variable value is a bit-shifted version of the first state variable value for the predetermined number of adaptation steps).
[0130] According to an embodiment of the invention, the arithmetic decoder is configured to independently update the first state variable value and the second state variable value (e.g. in dependence on a recently decoded symbol; e.g. such that the second state variable value is no longer a bit shifted version of the first state variable value) when the predetermined number of adaptation steps is completed.
[0131] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic decoder is configured to derive the second state variable from the first state variable value using a bit shift operation for the predetermined number of adaptation steps.
[0132] According to an embodiment of the invention, the arithmetic decoder is configured to initialize the first state variable value and the second state variable value to take respective initial values, wherein the arithmetic decoder is configured to update the first state variable value using the first, comparatively faster adaptation rate in dependence on respective decoded symbols for a predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, wherein the arithmetic decoder is configured to obtain the second state variable value as a scaled (e.g. bit-shifted) version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, wherein the arithmetic decoder is configured to update the first state variable value using the second, comparatively slower adaptation rate when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; and wherein the arithmetic decoder is configured to update the second state variable value using a third adaptation rate, which is slower than the first adaptation rate and the second adaptation rate, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
[0133] According to an embodiment of the invention, the arithmetic decoder is configured to evaluate a lookup table (e.g. lookupTableHyp) in order to update the first state variable value, wherein the arithmetic decoder is configured to select an entry of the lookup table in dependence on a current value of the first state variable value and in dependence on a respective decoded symbol, wherein the arithmetic decoder is configured to increase or decrease the first state variable value in dependence on the selected entry of the lookup table and in dependence on the respective decoded symbol, wherein the selected entry of the lookup table (e.g. add), scaled according to a scaling factor (e.g. according to (add«(b0-8))»1), determines a magnitude of the increase or decrease of the first state variable value, and wherein the respective decoded symbol determines whether the first state variable value is increased or decreased, wherein the arithmetic decoder is configured to use a comparatively larger scaling factor (resulting in a comparatively larger increase or decrease of the first state variable value) for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, and wherein the arithmetic decoder is configured to use a comparatively smaller
[0134] FV -ACr - FH241023PEP-2025349100.DOCX scaling factor (resulting in a comparatively smaller increase or decrease of the first state variable value) when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; wherein the arithmetic decoder is configured to obtain the second state variable value as a scaled version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values; and wherein the arithmetic decoder is configured to select another entry of the lookup table in dependence on a current value of the second state variable value and in dependence on the respective decoded symbol, and to increase or decrease the second state variable value in dependence on the selected another entry of the lookup table and in dependence on the respective decoded symbol, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein the selected entry of the lookup table (e.g. add), scaled according to a scaling factor (e.g. according to (add«(b1 -8))»1), determines a magnitude of the increase or decrease of the first state variable value, and wherein the respective decoded symbol determines whether the first state variable value is increased or decreased.
[0135] According to an embodiment of the invention, the arithmetic decoder is configured to determine a combined state variable value on the basis of the first state variable value and the second state variable value according to wherein the arithmetic decoder is configured to determine a table index value tabldx according to tabldx = abs(s » (bmax— 5)) wherein the arithmetic decoder is configured to determine a subintervall width RLPS for the less probable symbol according to
[0136] RLPS= rlpsTable2D[taWdx][(7? - 256) » 5],
[0137] (wherein, for example, rlpsTable2D is defined as rpsTable2D
[0032] [8] =
[0138] {
[0139] { 128, 142, 156, 171 , 185, 199, 213, 228 }, { 112, 125, 137, 150, 162, 175, 187, 200 }, { 97, 108, 119, 130, 141, 152, 163, 174 }, { 84, 93, 103, 112, 121 , 131 , 140, 150 }, { 74, 82, 90, 99, 107, 115, 123, 132 }, { 65, 72, 79, 87, 94, 101, 108, 116 }, { 57, 63, 70, 76, 82, 89, 95, 102 },
[0140] FV -ACr - FH241023PEP-2025349100.DOCX { 50, 56, 61, 67, 73, 78, 84, 90},
[0141] { 45, 50, 55, 60, 65, 70, 75, 80 },
[0142] { 39, 43, 48, 52, 56, 61, 65, 70},
[0143] { 34, 38, 42, 46, 50, 54, 58, 62 },
[0144] { 30, 33, 37, 40, 43, 47, 50, 54},
[0145] { 27, 30, 33, 36, 39, 42, 45, 48 },
[0146] { 23, 26, 28, 31, 34, 36, 39, 42},
[0147] { 20, 22, 24, 27, 29, 31, 33, 36},
[0148] { 18, 20, 22, 24, 26, 28, 30, 32},
[0149] { 15, 17, 19, 21, 22, 24, 26, 28},
[0150] { 14, 16, 17, 19, 21, 22, 24, 26},
[0151] { 12, 13, 15, 16, 17, 19, 20, 22},
[0152] { 11, 12, 13, 15, 16, 17, 18, 20},
[0153] { 10, 11, 12, 13, 14, 15, 16, 18},
[0154] { 9, 10, 11, 12, 13, 14, 15, 16},
[0155] { 7, 8, 9, 10, 11, 12, 13, 14}
[0156] { 7, 8, 9, 10, 11, 12, 13, 14}
[0157] { 5, 6, 6, 7, 8, 8, 9, 10},
[0158] { 5, 6, 6, 7, 8, 8, 9, 10},
[0159] { 4, 5, 5, 6, 6, 7, 7, 8},
[0160] { 4, 5, 5, 6, 6, 7, 7, 8},
[0161] { 3, 3, 4, 4, 4, 5, 5, 6},
[0162] { 3, 3, 4, 4, 4, 5, 5, 6},
[0163] { 2, 2, 2, 3, 3, 3, 3, 4},
[0164] { 2, 2, 2, 3, 3, 3, 3, 4}
[0165] ) wherein R is a coding interval width (e.g. before interval subdivision); wherein the arithmetic decoder is configured to arithmetically decode a (current) symbol to be decoded using the subintervall width RLPS for the less probable symbol, wherein the arithmetic decoder is configured to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ s0) » (b0- 5))]
[0166] FV-ACr- FH241023PEP-2025349100.DOCX for the predetermined number of adaptation steps following the initialization of the state variable values (e.g. following the initialization state variable values) to the respective initial values, and to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ s^ » ( - 5))] when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein bin designates a respective (recently) decoded symbol, wherein b1>b0>=7; wherein w1 >w0>1 ; (wherein, for example, b0=10, b1=13, or wherein, for example, b0=8, b1=12, wherein, for example, the predetermined number of adaptation steps comprises 63 adaptation steps) (wherein, for example, lookupTableHyp is defined as provided in the description).
[0167] An embodiment according to the invention comprises an arithmetic decoder for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), wherein the arithmetic decoder is configured to derive an interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (e.g. s0and Si) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), wherein the arithmetic decoder is configured to update the one or more state variable values (e.g. s0and s-i) in dependence on an decoded symbol (e.g. in dependence on a respective decoded symbol), in order to obtain one or more updated sate variable values for an decoding of a subsequent symbol; wherein the arithmetic decoder is configured to determine one or more initialization values for the one or more state variable values (e.g. s0,Si) in dependence on a quantization parameter (e.g. qp) which determines a quantization step size for a quantization of one or more values to be decoded using the symbols.
[0168] According to an embodiment of the invention, the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. sO, s1) using a
[0169] FV -ACr - FH241023PEP-2025349100.DOCX substantially linear mapping (e.g. linear except for quantization effects and / or rounding effects), which maps the quantization parameter (e.g. qp) onto an intermediate state value (e.g. inistate)(also designates as an initial state value).
[0170] According to an embodiment of the invention, the arithmetic decoder is configured to obtain one or more initialization values (e.g. s0,Si) of the one or more state variable values using one or more clipped (substantially) linear mappings (e.g. a sequence of mappings initState=inistate«(bi-7) and Si=min(max(initState,clip),(1 «bi)-clip)-center, wherein the latter mapping comprises a clipping functionality), wherein a respective one of the one or more clipped linear mappings linearly maps the intermediate state value (e.g. inistate) onto a respective initialization value of a respective state variable value (e.g. s0,s1) while limiting (i.e. clipping) a range of values of the initialization value to a predetermined range (e.g. from clip to (1 «bi)-clip).
[0171] According to an embodiment of the invention, the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. sO, s1) using a substantially linear mapping (e.g. linear except for quantization effects and / or rounding effects), which maps the quantization parameter (e.g. qp) onto an intermediate state value (e.g. inistate) or onto a respective initialization value of a respective state variable value.
[0172] According to an embodiment of the invention, the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. s0,Si) using one or more clipped (substantially) linear mappings (wherein a clipped substantially linear mapping is defined, for example, by a sequence of mappings currQP=qp-qpPosProbO, inistate_num=currQP*slopeMul+(probStart«log2qpRange), inistate=(initstate_num+add)»log2qpRange, initState=inistate«(bi-7) and
[0173] Si=min(max(initState,clip),(1 «bi)-clip)-center, wherein the latter mapping comprises a clipping functionality), wherein a respective one of the one or more clipped linear mappings linearly maps the quantization parameter (e.g. qp) onto a respective initialization value of a respective state variable value (e.g. s0,s1) while limiting (i.e. clipping) a range of values of the initialization value to a predetermined range (e.g. from clip to (1 «bi)-clip).
[0174] According to an embodiment of the invention, the arithmetic decoder is configured to obtain a first support value (e.g. probStart); wherein the arithmetic decoder is configured to obtain a second support value (e.g. probEnd); wherein the arithmetic decoder is configured to obtain a quantization parameter mapping start value (e.g. qpPosProbO) describing a value of the quantization parameter (e.g. qp) which is mapped onto the first support value (interpolation
[0175] FV -ACr - FH241023PEP-2025349100.DOCX value) of the linear mapping (e.g. describing a value of the quantization parameter qp for which an intermediate state value (e.g. inistate) is equal the first support value); wherein the arithmetic decoder is configured to obtain a quantization parameter mapping range value (e.g. e.g. log2qpRange) (e.g. in an integer valued logarithmic representation) describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value (interpolation value) of the linear mapping (wherein, for example, for qp=qpPosProbO+(1«log2qpRange, the intermediate state value, onto which qp is mapped, is equal to the second support value).
[0176] According to an embodiment of the invention, the arithmetic decoder is configured to map the quantization parameter onto the one or more initialization values using the first support value, the second support value, the quantization parameter mapping start value and the quantization parameter range value (wherein the first support value , the second support value, the quantization parameter mapping start value and the quantization parameter range value define a substantially linear mapping of the quantization parameter onto in intermediate state value, also designated as an initial state value).
[0177] According to an embodiment of the invention, the arithmetic decoder is configured to determine a slope value (e.g. slopeMul) in dependence on a difference between the second support value (e.g. probEnd) and the first support value (e.g. probStart) (wherein, for example, the slope value may be equal to the difference between the second support value and the first support value); wherein the arithmetic decoder is configured to determine a quantization parameter deviation value (e.g. currQP) using a difference between the quantization parameter value (e.g. qp) and the quantization parameter mapping start value (e.g. qpPosProbO) (wherein, for example, the quantization parameter deviation value may be equal to the difference between the quantization parameter value and the quantization parameter mapping start value); and wherein the arithmetic decoder is configured to determine the intermediate state value (e.g. inistate_num or inistate) using a combination (e.g. summation) of a product of the slope value (e.g. slopeMul) and of the quantization parameter deviation value (e.g. currQP) with a scaled version (e.g. probStart«log2qpRange) of the first support value (e.g. probStart).
[0178] According to an embodiment of the invention, the arithmetic decoder is configured to obtain a first support value (e.g. probStart), a second support value (e.g. probEnd), a quantization parameter mapping start value (e.g. qpPosProbO) describing a value of the quantization parameter which is mapped onto the first support value (interpolation value) using a linear mapping, and a quantization parameter mapping range value (e.g. e.g. log2qpRange) (e.g. in an integer valued logarithmic representation) describing, when taken in combination with the
[0179] FV -ACr - FH241023PEP-2025349100.DQCX quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value (interpolation value) using the linear mapping on the basis of a (single) initialization value (e.g. an initialization value comprising between 8 bit and 12 bit; e.g. a 12 bit initialization value).
[0180] According to an embodiment of the invention, the arithmetic decoder is configured to derive the quantization parameter mapping start value (e.g. qpPosProbO) on the basis of a first block (qpPosBrobOBits) of two bits of initialization value (e.g. initValue) (e.g. such that the quantization parameter mapping start value can take four different values)(e.g. such that the quantization parameter mapping start value can take values of 0, 2, 6 and 14), wherein the arithmetic decoder is configured to derive the quantization parameter mapping range value (e.g. e.g. log2qpRange) on the basis of a second block (log2qpRangeBits) of two bits of initialization value (e.g. initValue) (e.g. such that the quantization parameter mapping range value can take four different values)(e.g. such that the quantization parameter mapping range value can take values of 3, 4, 5 and 6), wherein the arithmetic decoder is configured to derive the first support value (e.g. probStart) on the basis of a third block (probStartBits) of four bits of initialization value (e.g. initValue) (e.g. such that the first support value can take 16 different values), wherein the arithmetic decoder is configured to derive the second support value (e.g. probEnd) on the basis of a fourth block (probEndBits) of four bits of initialization value (e.g. initValue) (e.g. such that the first support value can take 16 different values).
[0181] According to an embodiment of the invention, the arithmetic decoder is configured to derive the quantization parameter mapping start value qpPosProbO on the basis of a (first) block qpPosBrobOBits of two bits (e.g. of the initialization value; e.g. of initValue) according to qpPosProbO = (2 « qpPosProbOBits) - 2.
[0182] According to an embodiment of the invention, the arithmetic decoder is configured to derive the quantization parameter mapping range value log2qpRange on the basis of a (second) block log2qpRangeBits of two bits (e.g. of the initialization value; e.g. of initValue) according to log2qpRange = log2qpRangeBits + 3.
[0183] According to an embodiment of the invention, the arithmetic decoder is configured to derive the first support value probStart on the basis of a (third) block probStartBits of four bits (e.g. of the initialization value; e.g. of initValue) (e.g. such that the first support value can take 16 different values), according to probStart = probStartBits * 8 and wherein the arithmetic decoder is configured to derive the second support value probEnd on the basis of a (fourth) block
[0184] FV -ACr - FH241023PEP-2025349100.DOCX probEndBits of four bits (e.g. of the initialization value; e.g. of initValue) (e.g. such that the first support value can take 16 different values), according to probEnd = probEndBits * 8.
[0185] According to an embodiment of the invention, the arithmetic decoder is configured to obtain a first block of two bits (e.g. qpPosProbOBits) representing the quantization parameter mapping start value, a second block of two bits (log2qpRangeBits) representing the quantization parameter mapping range value (e.g. e.g. log2qpRange), a third block of four bits (probStartBits) representing the first support value (e.g. probStart) and a fourth block of four bits (probEndBits) representing the first support value (e.g. probEnd) on the basis of the initialization value initValue according to qpPosProbOBits = initValue & 3 log2qpRangeBits = (initValue » 2) & 3 probStartBits = (initValue » 4) & 15 probEndBits = (initValue » 8) & 15.
[0186] According to an embodiment of the invention, the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values (e.g. s0,Si) using one or more (substantially) linear mappings (e.g. linear interpolations), respectively followed by a clipping operation (wherein a clipped substantially linear mapping is defined, for example, by a sequence of mappings currQP=qp-qpPosProbO, inistate_num=currQP*slopeMul+(probStart«log2qpRange), inistate=(initstate_num+add)»log2qpRange, initstate=inistate«(bi-5) and
[0187] Si=min(max(initState,clip),(1«bi)-clip)-center, wherein the latter mapping comprises a clipping functionality).
[0188] According to an embodiment of the invention, the arithmetic decoder is configured to obtain an initialization value of a first state variable value using a (substantially) linear mapping (e.g. linear interpolation), followed by clipping operation, or wherein the arithmetic decoder is configured to obtain an initialization value of a first state variable value using a sequence of (substantially) linear mappings (e.g. linear interpolation), followed by clipping operation; and wherein the arithmetic decoder is configured to obtain an initialization value of a second state variable value using a (substantially) linear mapping (e.g. linear interpolation), followed by clipping operation, or wherein the arithmetic decoder is configured to obtain an initialization value of a second state variable value using a sequence of (substantially) linear mappings (e.g. linear interpolation), followed by clipping operation.
[0189] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic decoder is configured to obtain an intermediate state value inistate for a determination of an initialization value of a state variable si in dependence on a quantization parameter qp according to slopeMul = probEnd - probStart add = (1 « log2qpRange) » 1 currQP = qp - qpPosProbO inistate_num = currQP * slopeMul + (probStart « log2qpRange) inistate = (inistate_num + add ) » log2qpRange wherein probStart is a first support value (which may, for example, be obtained on the basis of initialization value initValue, e.g. on the basis of a third block (probStartBits) of four bits of initialization value (e.g. initValue) (e.g. such that the first support value can take 16 different values), wherein probEnd is a second support value (which may, for example, be obtained on the basis of initialization value initValue, e.g. on the basis of a fourth block (probEndBits) of four bits of initialization value (e.g. initValue)) (e.g. such that the second support value can take 16 different values), wherein log2qpRange is a quantization parameter mapping range value (e.g. in a logarithmic representation) (which is obtained, for example, on the basis of a (second) block log2qpRangeBits of two bits (e.g. of the initialization value; e.g. of initValue)), wherein qpPosProbO is a quantization parameter mapping start value (which may, for example, be obtained on the basis of a (first) block qpPosBrobOBits of two bits (e.g. of the initialization value; e.g. of initValue)).
[0190] According to an embodiment of the invention, the arithmetic decoder is configured to obtain an initialization value of a state variable si (e.g. of a first state variable value sO and of a second state variable value s1) (e.g. with i=1 or i=2) according to initState = inistate « (b; - 7) clip = 1 « (bi - 5) center = 1 « (^ - 1) si = min( max( initState, clip ), (1«b;) - clip ) - center wherein bi is a number of bits used for representing the state variable value si.
[0191] According to an embodiment of the invention, the arithmetic decoder is configured to decode a plurality of channel signals by arithmetically decoding one or more respective symbol values representing sample values of the respective channel signals; wherein the arithmetic decoder is configured to use a plurality of (e.g. a set of) channel context models per channel signal, wherein separate (e.g. different) sets of context models are used for the decoding of different channel signals; wherein the arithmetic decoder is configured to initialize state variables of (separate) channel context models associated with an decoding of different channel signals
[0192] FV -ACr - FH241023PEP-2025349100.DQCX using identical initialization values (e.g. such that separate but corresponding channel context models associated with the decoding of different channel signals share same initialization values, wherein different context models used for an decoding of a given channel signal may comprise different initialization values.).
[0193] According to an embodiment of the invention, the arithmetic decoder is configured to obtain (e.g. to decode e.g. to derive; e.g. to determine) a signaling information (e.g. a flag or a signaling value) from an encoded representation; and wherein the arithmetic decoder is configured to select a common (global) set of initialization values as a selected common set of initialization values, for initializing state variables for an arithmetic decoding of a plurality of channel signals, using the signaling information.
[0194] According to an embodiment of the invention, the arithmetic decoder is configured to obtain (e.g. to determine, e.g. to derive, e.g. to decode) a signaling information, indicating whether to use a same set of initialization values for initializing state variables of (separate) channel context models (e.g. when decoding the different channel signals), or whether to use separate sets of initialization values for initializing state variables of (separate) channel context models (e.g. when decoding the different channel signals), from an encoded representation (comprising an encoded representation of the plurality of symbols); and wherein the arithmetic decoder is configured to decide whether to use a same set of initialization values for initializing state variables of (separate) channel context models associated with the decoding of different channel signals, or whether to use separate sets of initialization values for initializing state variables of (separate) channel context models associated with the decoding of different channel signals, using the signaling information.
[0195] According to an embodiment of the invention, the arithmetic decoder is configured to obtain (e.g. to decode, e.g. to determine, e.g. to derive), from an encoded representation (comprising an encoded representation of the plurality of symbols), a signaling information (e.g. a one bit flag) indicating whether a further signaling information (e.g. a further syntax element per channel), indicating on a per channel basis which initialization value or set of initialization value, out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used, is included into the encoded representation (e.g. and to selectively obtain (e.g. to decode, e.g. to determine, e.g. to derive), into from the encoded representation said further signaling information if the further signaling information is present in the encoded representation) (e.g. and to use a respective initialization value or set of initialization values accordingly).
[0196] FV -ACr - FH241023PEP-2025349100.DOCX According to an embodiment of the invention, the arithmetic decoder is configured to selectively obtain (e.g. to decode, e.g. to determine, e.g. to derive), from an encoded representation (comprising an encoded representation of the plurality of symbols), a perchannel signaling information (e.g. a further syntax element per channel), indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used (e.g. and to use a respective initialization value or set of initialization values accordingly).
[0197] According to an embodiment of the invention, the per-channel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used, is a one bit information (e.g. decoded using one bin and using one context model).
[0198] According to an embodiment of the invention, the arithmetic decoder is configured to update a first state variable value s0and a second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ S;) » (b; - 5))] S( = S( + sign ■ add wherein bin designates a respective (recently) decoded symbol, wherein b1>b0>=7; wherein w1>w0>1 ; (wherein, for example, b0=10, b1=13, or wherein, for example, b0=8, b1=12, wherein, for example, the predetermined number of adaptation steps comprises 63 adaptation steps) (wherein, for example, lookupTableHyp is defined as provided in the description).
[0199] An embodiment according to the invention comprises an arithmetic encoding method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), the method comprising: deriving an interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (e.g. s0and Si) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously encoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time
[0200] FV -ACr - FH241023PEP-2025349100.DOCX constants), updating the one or more state variable values (e.g. s0and Si) in dependence on an encoded symbol, in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol; using a first, comparatively faster adaptation rate for an update of one or more of the state variable values for a predetermined number of adaptation steps (e.g. following an initialization of the one or more state variable values; e.g. following a start of the encoding); and using a second, comparatively slower adaptation rate for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed (e.g. following an initialization of the one or more state variable values).
[0201] An embodiment according to the invention comprises an arithmetic encoding method for encoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), the method comprising: deriving an interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (e.g. s0and s-i) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously encoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), updating the one or more state variable values (e.g. s0and s-i) in dependence on an encoded symbol (e.g. in dependence on a respective encoded symbol), in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol; determining one or more initialization values for the one or more state variable values (e.g. s0,Si) in dependence on a quantization parameter (e.g. qp) which determines a quantization step size for a quantization of one or more values to be encoded using the symbols.
[0202] An embodiment according to the invention comprises an arithmetic decoding method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), the method comprising: deriving an interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (e.g. s0and s-i) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), updating the one or more state variable values (e.g. s0and Si) in dependence on an decoded symbol, in order to obtain one or more updated sate variable values for a decoding of a subsequent symbol; using a first, comparatively faster adaptation rate for an update of one
[0203] FV -ACr - FH241023PEP-2025349100.DOCX or more of the state variable values for a predetermined number of adaptation steps (e.g. following an initialization of the one or more state variable values; e.g. following a start of the decoding); and using a second, comparatively slower adaptation rate for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed (e.g. following an initialization of the one or more state variable values).
[0204] An embodiment according to the invention comprises an arithmetic decoding method for decoding a plurality of symbols having symbol values (e.g. binary values) (e.g. symbols representing a biomedical signal, or symbol representing an audio signal, or symbols representing a video signal), the method comprising: deriving an interval size information (e.g. an interval size for a less probable symbol; e.g. RLPS) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (e.g. s0and s-i) (e.g. on the basis of a plurality of state variable values) (which are, for example, associated with a given context model), which represent statistics of a plurality of previously decoded symbol values (e.g. a sequence of binary values 0 and 1) (e.g. with different adaptation time constants), updating the one or more state variable values (e.g. s0and s-i) in dependence on an decoded symbol (e.g. in dependence on a respective decoded symbol), in order to obtain one or more updated sate variable values for a decoding of a subsequent symbol; determining one or more initialization values for the one or more state variable values (e.g. s0,Si) in dependence on a quantization parameter (e.g. qp) which determines a quantization step size for a quantization of one or more values to be decoded using the symbols.
[0205] An embodiment according to the invention comprises a computer program for performing the method according to the invention when the computer program runs on a computer.
[0206] It is to be noted that any of the features, functionalities and / or details as explained in the context of any of the inventive encoders and / or decoders may be (e.g. in a corresponding or according manner) incorporated in or may be used with or may be added to any of the above-inventive methods, individually or taken in combination. Furthermore, methods according the embodiments of the invention may be based on the same or similar or analogous considerations and / or ideas as corresponding encoders and / or decoders. Hence, these methods may comprise same or similar or analogous features and advantages.
[0207] An embodiment according to the invention comprises an encoded representation (representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an arithmetically encoded representation of a plurality of symbol values (e.g. representing a biomedical signal, or representing an audio signal, or representing a video
[0208] FV -ACr - FH241023PEP-2025349100.DOCX signal) representing a plurality of channel signals; and a signaling information (e.g. an encoded flag or an encoded value) indicating which common (global) set of initialization values (e.g. each set comprising one initialization value per context model), out of a plurality of candidate sets of initialization values, should be used for initializing state variables for an arithmetic decoding of a plurality of channel signals.
[0209] An embodiment according to the invention comprises an encoded representation (representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an arithmetically encoded representation of a plurality of symbol values (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal) representing a plurality of channel signals; and a signaling information (e.g. a flag) indicating whether to use a same set of initialization values (e.g. the set comprising one initialization value per context model) for initializing state variables of (separate) channel context models (e.g. associated with the plurality of channel signals) (e.g. when decoding the different channel signals), or whether to use separate sets of initialization values (e.g. each set comprising one initialization value per context model) for initializing state variables of (separate) channel context models (e.g. when decoding the different channel signals).
[0210] An embodiment according to the invention comprises an encoded representation (representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an arithmetically encoded representation of a plurality of symbol values (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal) representing a plurality of channel signals; and a signaling information (e.g. a one bit flag) indicating whether a further signaling information (e.g. a further syntax element per channel), indicating on a per channel basis which initialization value or set of initialization value (e.g. the set comprising one initialization value per context model), out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used (e.g. when decoding the different channel signals), is included in the encoded representation.
[0211] An embodiment according to the invention comprises an encoded representation (representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an arithmetically encoded representation of a plurality of symbol values (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal) representing a plurality of channel signals; and a per-channel signaling information (e.g. a further syntax element per channel), indicating on a per channel basis which initialization
[0212] FV -ACr - FH241023PEP-2025349100.DOCX value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values (e.g. the set comprising one initialization value per context model) should be used.
[0213] An embodiment according to the invention comprises a data stream having encoded an encoded representation using the method according to the invention.
[0214] It is to be noted that any of the features, functionalities and / or details as explained in the context of any of the inventive encoders and / or decoders may be (e.g. in a corresponding or according manner) incorporated in or may be used with or may be added to any of the above-inventive encoded representations and data streams, individually or taken in combination. Furthermore, encoded representations and data streams according the embodiments of the invention may be based on the same or similar or analogous considerations and / or ideas as corresponding encoders and / or decoders. Hence, these encoded representations and data streams may comprise same or similar or analogous features and advantages.
[0215] Brief Description of the Drawings
[0216] The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the invention are described with reference to the following drawings, in which:
[0217] Fig. 1 shows a schematic view of an arithmetic encoder according to embodiments of the invention;
[0218] Fig. 2 shows a schematic view of an arithmetic decoder according to embodiments of the invention;
[0219] Fig. 3 shows a schematic view of a state variable value update unit according to embodiments of the invention;
[0220] Fig. 4 shows a schematic view of another arithmetic encoder according to embodiments of the invention;
[0221] Fig. 5 shows a schematic view of another arithmetic decoder according to embodiments of the invention; and
[0222] FV -ACr - FH241023PEP-2025349100.DOCX Fig. 6 shows a schematic view of an encoder for encoding a multi-channel digital signal into a data stream as well as decoder for decoding the multi-channel digital signal from data stream according to embodiments of the invention.
[0223] Detailed Description of the Embodiments
[0224] Equal or equivalent elements or elements with equal or equivalent functionality are denoted in the following description by equal or equivalent reference numerals, even if occurring in different figures.
[0225] In the following description, a plurality of details is set forth to provide a more throughout explanation of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail in order to avoid obscuring embodiments of the present invention. In addition, features of the different embodiments described herein after may be combined with each other, unless specifically noted otherwise.
[0226] Fig. 1 shows a schematic view of an arithmetic encoder according to embodiments of the invention.
[0227] Arithmetic encoder 100 comprises an arithmetic encoding unit 110, an interval size derivation unit 120 and a state variable update unit 130.
[0228] The arithmetic encoder 100 is an encoder for encoding a plurality of symbols having symbol values 101. The arithmetic encoder 100 is configured, e.g. using the interval size derivation unit 120, to derive an interval size information 121 for an arithmetic encoding, e.g. using arithmetic encoding unit 110, of one or more symbol values 101 to be encoded on the basis of one or more state variable values 132, which represent statistics of a plurality of previously encoded symbol values. The encoding unit 110 may hence be configured to provide an encoded representation 102 comprising an encoded representation of the one or more symbol values.
[0229] FV -ACr - FH241023PEP-2025349100.DOCX The arithmetic encoder 100 is configured to update, e.g. using state variable value update unit 130, the one or more state variable values in dependence on an encoded symbol, in order to obtain one or more updated sate variable values 132 for an encoding of a subsequent symbol.
[0230] Here, as an example, a symbol value information 111, comprising (e.g. an information about) an encoded symbol (e.g. such as currently being encoded, or previously encoded) is provided to the state variable value update unit 130 from the arithmetic encoding unit 110.
[0231] Furthermore, the arithmetic encoder 100 is configured to use a first, comparatively faster adaptation rate, 150a, for an update of one or more of the state variable values for a predetermined number of adaptation steps and to use a second, comparatively slower adaptation rate, 150b, for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed.
[0232] Here, as an example, a switching unit 140 is shown, which may provide an adaptation rate information, e.g. comprising the first adaptation rate or the second adaptation rate as a selected adaptation rate, to the state variable value update unit 130.
[0233] As an example, the switching may be performed based on a switching signal information 131, e.g. indicating whether the predetermined number of adaptation steps is completed. As an example, state variable value update unit 130 may comprise a counter, which may be configured to adapt and provide the switching signal information 131. Here, it is to be noted that the switching unit 140 is shown as an explicit entity for the sake of clearness. A respective functionality may as well be implemented in state variable value update unit 130 or elsewhere.
[0234] Next, reference is made to Fig. 2. Fig. 2 shows a schematic view of an arithmetic decoder according to embodiments of the invention.
[0235] Arithmetic decoder 200 comprises an arithmetic decoding unit 210, an interval size derivation unit 220 and a state variable update unit 230. Here it is to be noted that interval size derivation unit 220 and the state variable update unit 230 may correspond to interval size derivation unit 120 and a state variable update unit 130, e.g. having a same or corresponding functionalities, as will become clear, based on the following explanations.
[0236] The arithmetic decoder 200 is a decoder for decoding a plurality of symbols having symbol values.
[0237] FV -ACr - FH241023PEP-2025349100.DOCX The arithmetic decoder 200 is configured to derive, e.g. using interval size derivation unit 220, an interval size information 221 for an arithmetic decoding of one or more symbol values to be decoded, e.g. using arithmetic decoding unit 210, on the basis of one or more state variable values, 232, which represent statistics of a plurality of previously decoded symbol values.
[0238] Hence, the arithmetic decoding unit 210 may provide respective one or more decoded symbol values 202.
[0239] Therefore, the decoder 200, e.g. the decoding unit 210, may, for example, be provided with an encoded representation 201, e.g. the encoded representation 102, which comprises the one or more encoded symbol values to be decoded.
[0240] The arithmetic decoder 200 is configured to update, e.g. using state variable value update unit 230, the one or more state variable values, 232, in dependence on a decoded symbol, in order to obtain one or more updated state variable values 232 for a decoding of a subsequent symbol.
[0241] Here, as an example, a symbol value information 211, comprising (e.g. an information about) a decoded symbol (e.g. such as currently being decoded, or previously decoded), is provided to the state variable value update unit 230 from the arithmetic decoding unit 210.
[0242] Furthermore, the arithmetic decoder 200 is configured to use a first, comparatively faster adaptation rate, 250a (e.g. adaptation rate 150a), for an update of one or more of the state variable values for a predetermined number of adaptation steps and to use a second, comparatively slower adaptation rate, 250b (e.g. adaptation rate 150b), for the update of one or more of the state variable values 232, when the predetermined number of adaptation steps is completed.
[0243] Here, as an example, a switching unit 240 is shown, which may provide an adaptation rate information 241 , e.g. comprising the first adaptation rate or the second adaptation rate, as a selected adaptation rate, to the state variable value update unit 230.
[0244] As an example, the switching may be performed based on a switching signal information 231, e.g. indicating whether the predetermined number of adaptation steps is completed. As an example, state variable value update unit 230 may comprise a counter, which may be configured to adapt and provide the switching signal information 231. Here, it is to be noted that the switching unit 240 is shown as an explicit entity for the sake of clearness. A respective functionality may as well be implemented in state variable value update unit 230.
[0245] FV -ACr - FH241023PEP-2025349100.DOCX Next, reference is made to Fig. 3. Fig. 3 shows a schematic view of a state variable value update unit according to embodiments of the invention.
[0246] State variable value update unit 3300 comprises, as optional features, a first state variable update unit 3310, a second state variable update unit 3320, a scaling unit 3330, a state variable initialization unit 3340 (e.g. an initialization value determination unit), a counter 3350, and switching units 3360, 3360’ and 3360”.
[0247] In the following optional features, functionalities and details of the state variable value update unit 3300 are discussed.
[0248] State variable value update unit 3300 may represent an encoder-sided state variable value update unit 130, with symbol value information 3311 corresponding to symbol value information 111 and adaptation rate information 3341 corresponding to adaptation rate information 141 , switching signal information 3331 corresponding to switching signal information 131 and the first and second state variable value 3333a and 3333b corresponding to the one or more state variable values 132.
[0249] Vice versa, state variable value update unit 3300 may represent a decoder-sided state variable value update unit 230, with symbol value information 3311 corresponding to symbol value information 211 and adaptation rate information 3341 corresponding to adaptation rate information 241 , switching signal information 3331 corresponding to switching signal information 231 and the first and second state variable value 3333a and 3333b corresponding to the one or more state variable values 232.
[0250] As previously discussed, optional counter 3350 may be configured to track the number of adaptation steps, e.g. after an initialization of the state variable values (e.g. tracking how many times the state variable values have been updated after initialization), in order to control the switching between the different adaptation rates. As an example, the counter 3350 may directly provide the adaptation rate information 3341 , e.g. indicating which adaptation rate to select.
[0251] Based on the adaptation rate information 3341, e.g. indicating whether the first, comparatively faster adaptation rate, e.g. 150a, 250a, or the second, comparatively slower adaptation rate, e.g. 150b, 250b, is to be used, optionally, a selection of adaptation time constants may be performed.
[0252] FV -ACr - FH241023PEP-2025349100.DOCX Hence, as an example, the one or more state variable values 132 or respectively 232 may comprise a first and second state variable value 3333a, b.
[0253] In a normal mode of operation, the first state variable value may 3333a be updated, e.g. using first state variable update unit 3310, using a first adaptation time constant 3350a (e.g. set by switching unit 3360’). In this normal operation mode, the second state variable value may be updated, e.g. using second state variable update unit 3320, using a second adaptation time constant 3350b (e.g. set by switching unit 3360”), which is longer than the first adaptation time constant 3350a.
[0254] However, for a predetermined number of adaptation steps (or the before-discussed number of adaptation steps), the state variable value update unit 3300 may be configured to use the first, comparatively faster adaptation rate for an update of the first state variable values 3333a and to determine the second state variable value 3333b to be a scaled version of the first state variable value 3333a.
[0255] Hence, instead of an updating of the second state variable value 3333b using second state variable value update unit 3320, the output of the first state variable value update unit 3310 may be scaled, e.g. using scaling unit 3330, in order to obtain the second state variable value 3333b (e.g. as indicated by a respective setting of switching unit 3360).
[0256] Hence, the arithmetic encoder 100 or respectively the arithmetic decoder 200 may be configured to derive the interval size information 121, 221 on the basis of the first and second state variable value 3333a, b.
[0257] For example, after the predetermined number of adaptation steps, switch 3360 may be switched, so as to independently update the first state variable value 3333a and the second state variable value 3333b.
[0258] As an optional feature, the scaling, e.g. in scaling unit 3330, may, for example be performed using a bit shift operation.
[0259] As another optional feature, the state variable value update unit 3300 comprises a state variable initialization unit 3340 (which may be an initialization value determination unit, as will be discussed later), which may be configured to provide initialization values 3341a, 3341b for the first and / or second state variables values.
[0260] FV -ACr - FH241023PEP-2025349100.DOCX Accordingly, the switching between obtaining the second state variable value 3333b as a scaled version of the first state variable value 3333a or obtaining the second state variable value 3333a independently, e.g. using the second adaptation time constant 3350b, may be performed based on the number of adaptation steps completed after such an initialization.
[0261] As an example, state variable initialization unit 3340 may, for example, be configured provide a counter-reset signal to counter 3350.
[0262] Moreover, as an optional feature, after the predetermined number of adaption steps, for the updating of the first state variable value 3333a, the comparatively slower adaptation rate may be used, e.g. in the form of using the second adaptation time constant 3350b, and for the updating of the second state variable value 3333b, a third adaptation rate, which is slower than the second adaptation rate, may be used, e.g. in the form of using a third adaptation time constant 3350c.
[0263] Furthermore, as an optional feature, the first and / or second state variable update may be performed using lookup tables. For example, a table entry may be selected in dependence on a current value of the respective state variable value and in dependence on a respective encoded / decoded symbol (e.g. as indicated by symbol value information 3311).
[0264] Furthermore, such a selected table entry may optionally be scaled according to a scaling factor. Based on such a scaled table entry, a magnitude of an increase or decrease of the respective state variable value may be determined. Furthermore, the respective encoded / decoded symbol (e.g. as indicated by symbol value information 3311) may determine whether the respective state variable value is increased or decreased.
[0265] Hence, as an example, the first state variable update unit 3310 may be configured to evaluate a lookup table, in order to update the first state variable value 3333a and to select an entry of the lookup table in dependence on a current value of the first state variable value and in dependence on a respective encoded / decoded symbol (e.g. as indicated by symbol value information 3311).
[0266] Furthermore, the first state variable update unit 3310 may be configured to increase or decrease the first state variable value 3333a in dependence on the selected entry of the lookup table and in dependence on the respective encoded / decoded symbol, wherein the selected entry of the lookup table, scaled according to a scaling factor, determines a magnitude of the increase or decrease of the first state variable value 3333a, and wherein the respective
[0267] FV -ACr - FH241023PEP-2025349100.DOCX encoded / decoded symbol determines whether the first state variable value 3333a is increased or decreased,
[0268] The state variable value update unit 3300 may be configured to use a comparatively larger scaling factor for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, and to use a comparatively smaller scaling factor when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed. Such a switching of scaling factors may, for example, be performed for the update of the first and / or second state variable value.
[0269] For example, for a setting of the scaling factor, the adaptation rate information 3341 may, for example, be directly provided to the first and / or state variable value unit 3310, 3320. Alternatively, additional switches may provide larger or respectively lower scaling factors to the update unit (e.g. 3310 and / or 3320, e.g. as shown for the adaptation time constants), e.g. depending on the adaptation rate information 3341 or respectively directly depending on the switching signal information 3331.
[0270] Furthermore, second state variable update unit 3320 may, for example, be configured to obtain the second state variable value 3333b as a scaled version of the first state variable value 3333a for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values.
[0271] Furthermore, the second state variable update unit 3320 may also be configured to evaluate a lookup table (e.g. the same lookup table), in order to update the second state variable value 3333b.
[0272] The second state variable update unit 3320 may be configured to select another entry of the lookup table in dependence on a current value of the second state variable value 3333b and in dependence on the respective encoded / decoded symbol (e.g. as indicated by symbol value information 3311), and to increase or decrease the second state variable value 3333b in dependence on the selected another entry of the lookup table and in dependence on the respective encoded / decoded symbol, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
[0273] FV -ACr - FH241023PEP-2025349100.DOCX Hence, the selected entry of the lookup table, optionally scaled according to a scaling factor, may determine a magnitude of the increase or decrease of the first and / or respectively second state variable value, and the respective encoded symbol may determine whether the first and / or respectively second state variable value is increased or decreased.
[0274] Returning to Fig 1 and 2, it is to be noted that interval size derivation unit 120, 220 may, for example, be configured to determine a combined state variable value (and to include the same in signal 132, 232) on the basis of the first state variable value and the second state variable value, for example, according to wherein the interval size derivation unit 120, 220 may, for example, be configured to determine a table index value tabldx according to tabldx = abs(s » (bmax— 5)) wherein the interval size derivation unit 120, 220 may be configured to determine a subintervall width RLPS (e.g. the interval size information 121, 211 being or comprising RLPS) for the less probable symbol according to
[0275] RLPS= rlpsTable2D[taWdx][(7? - 256) » 5], wherein, for example, rlpsTable2D is defined as rpsTable2D
[0032] [8] =
[0276] {
[0277] { 128, 142, 156, 171 , 185, 199, 213, 228 }, { 112, 125, 137, 150, 162, 175, 187, 200 }, { 97, 108, 119, 130, 141, 152, 163, 174 }, { 84, 93, 103, 112, 121 , 131 , 140, 150 }, { 74, 82, 90, 99, 107, 115, 123, 132 }, { 65, 72, 79, 87, 94, 101, 108, 116 }, { 57, 63, 70, 76, 82, 89, 95, 102 },
[0278] { 50, 56, 61 , 67, 73, 78, 84, 90 },
[0279] { 45, 50, 55, 60, 65, 70, 75, 80 },
[0280] { 39, 43, 48, 52, 56, 61 , 65, 70 },
[0281] { 34, 38, 42, 46, 50, 54, 58, 62 },
[0282] { 30, 33, 37, 40, 43, 47, 50, 54 },
[0283] { 27, 30, 33, 36, 39, 42, 45, 48 },
[0284] { 23, 26, 28, 31 , 34, 36, 39, 42 },
[0285] { 20, 22, 24, 27, 29, 31 , 33, 36 },
[0286] { 18, 20, 22, 24, 26, 28, 30, 32 },
[0287] { 15, 17, 19, 21 , 22, 24, 26, 28 },
[0288] FV -ACr - FH241023PEP-2025349100.DOCX { 14, 16, 17, 19, 21, 22, 24, 26 },
[0289] { 12, 13, 15, 16, 17, 19, 20, 22 },
[0290] { 11 , 12, 13, 15, 16, 17, 18, 20 },
[0291] { 10, 11, 12, 13, 14, 15, 16, 18 },
[0292] { 9, 10, 11, 12, 13, 14, 15, 16 },
[0293] { 7, 8, 9, 10, 11 , 12, 13, 14 }
[0294] { 7, 8, 9, 10, 11 , 12, 13, 14 }
[0295] { 5, 6, 6, 7, 8, 8, 9, 10 },
[0296] { 5, 6, 6, 7, 8, 8, 9, 10 },
[0297] { 4, 5, 5, 6, 6, 7, 7, 8 },
[0298] { 4, 5, 5, 6, 6, 7, 7, 8 },
[0299] { 3, 3, 4, 4, 4, 5, 5, 6 },
[0300] { 3, 3, 4, 4, 4, 5, 5, 6 },
[0301] { 2, 2, 2, 3, 3, 3, 3, 4 },
[0302] { 2, 2, 2, 3, 3, 3, 3, 4 } wherein R is a coding interval width.
[0303] Furthermore, optionally, arithmetic encoding unit 110 or respectively arithmetic decoding unit 210 may, for example, be configured to arithmetically encode / decode a symbol to be encoded / to be decoded using the subintervall width R PS for the less probable symbol.
[0304] Optionally, the first and state variable update units 3310, 3320 may, for example, be configured to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ((sign ■ s0) » (b0- 5))] for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values and to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp add = (add
[0305] S( = S( + sign ■ add
[0306] FV -ACr - FH241023PEP-2025349100.DOCX when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein bin designates a respective encoded symbol, wherein b1>b0>=7 and wherein w1>w0>1.
[0307] In general, the encoded representation 102, 201 may, for example, comprise an information about the first and / or second adaptation rate 150a,b, for example, adaptation time constants or scaling factors to be used for the state variable update. Hence, encoder 100 may, for example be configured to determine or receive such an information and to provide the same in the encoded representation 102. Accordingly, decoder 200 may be configured to decode such information and to provide the same to the respective unit, e.g. the state variable value update unit or respective subunits.
[0308] Next, reference is made to Fig. 4. Fig. 4 shows a schematic view of another arithmetic encoder according to embodiments of the invention.
[0309] Arithmetic encoder 400 comprises an arithmetic encoding unit 410, an interval size derivation unit 420, a state variable update unit 430 and an initialization value determination unit 440.
[0310] The arithmetic encoder 400 is an encoder for encoding a plurality of symbols having symbol values. The arithmetic encoder 400 is configured, e.g. using the interval size derivation unit 420, to derive an interval size information 421 for an arithmetic encoding of one or more symbol values 401 to be encoded on the basis of one or more state variable values 432, which represent statistics of a plurality of previously encoded symbol values. The encoding unit 410 may hence be configured to provide an encoded representation 402 comprising an encoded representation of the one or more symbol values.
[0311] The arithmetic encoder 400 is configured to update, e.g. using state variable value update unit 430, the one or more state variable values 432 in dependence on an encoded symbol, in order to obtain one or more updated sate variable values 432 for an encoding of a subsequent symbol.
[0312] Here, as an example, a symbol value information 411, comprising (e.g. an information about) an encoded symbol (e.g. currently encoded symbol or previously encoded symbol) is provided to the state variable value update unit from the arithmetic encoding unit 410.
[0313] Furthermore, the arithmetic encoder 400 is configured to determine, e.g. using initialization value determination unit 440, one or more initialization values for the one or more state variable
[0314] FV -ACr - FH241023PEP-2025349100.DOCX values in dependence on a quantization parameter 450, which determines a quantization step size for a quantization of one or more values to be encoded using the symbols.
[0315] Here, as an example the initialization value determination unit 440 may provide an initialization value information 441 comprising (e.g. an information about) the one or more initialization values, to the state variable update unit 430.
[0316] Next, reference is made to Fig. 5. Fig. 5 shows a schematic view of another arithmetic decoder according to embodiments of the invention.
[0317] Arithmetic decoder 500 comprises an arithmetic decoding unit 510, an interval size derivation unit 520, a state variable update unit 530 and an initialization value determination unit 540.
[0318] Here, it is to be noted that interval size derivation unit 520 and a state variable update unit 530 may correspond to interval size derivation unit 420 and a state variable update unit 430, e.g. having a same or corresponding functionality, as will become clear based on the following explanations.
[0319] The arithmetic decoder 500 is a decoder for decoding a plurality of symbols having symbol values.
[0320] The arithmetic decoder 500 is configured to derive, e.g. using interval size derivation unit 520, an interval size information 521 for an arithmetic decoding of one or more symbol values 501 to be decoded, e.g. using arithmetic decoding unit 510, on the basis of one or more state variable values, 532, which represent statistics of a plurality of previously decoded symbol values.
[0321] Hence, the arithmetic decoding unit 510 may provide respective one or more decoded symbol values 502.
[0322] Therefore, the decoder 500, e.g. the decoding unit 510, may, for example, be provided with an encoded representation 501, e.g. the encoded representation 402, which comprises the one or more encoded symbol values to be decoded.
[0323] The arithmetic decoder 500 is configured to update, e.g. using state variable value update unit 530, the one or more state variable values, 532, in dependence on a decoded symbol, in order to obtain one or more updated state variable values 532 for a decoding of a subsequent symbol.
[0324] FV -ACr - FH241023PEP-2025349100.DOCX Here, as an example, a symbol value information 511, comprising (e.g. an information about) a decoded symbol (e.g. currently decoded symbol or previously decoded symbol) is provided to the state variable value update unit 530 from the arithmetic decoding unit 510.
[0325] Furthermore, the arithmetic decoder 500 is configured, e.g. using initialization value determination unit 540, to determine one or more initialization values for the one or more state variable values in dependence on a quantization parameter, 550, which determines a quantization step size for a quantization of one or more values to be decoded using the symbols.
[0326] Here, as an example, the initialization value determination unit 540 may provide an initialization value information 541 comprising (e.g. an information about) the one or more initialization values, to the state variable update unit 530.
[0327] Furthermore, initialization units 440 and 540 may have a same or corresponding functionality. In the following, aspects both for encoder 400 and decoder 500 will be discussed, which are to be understood for the one or the other in a same or corresponding manner.
[0328] In addition, it is to be noted that state variable initialization unit 3340 may comprise any or all of the features that will be discussed for initialization units 440 and 540, both individually or taken in combination. In other words, encoder 100 and / or decoder 200 may comprise additionally the initialization functionalities discussed in the following. Hence, signals 3341a, b may comprise a respective one of the one or more initialization values of the one or more state variable values.
[0329] As an optional feature, initialization value determination unit 440, 540, 3340 may, for example, be configured to obtain the one or more initialization values, e.g. included in initialization value information 441, 541 , e.g. 3341 a, b, of the one or more state variable values using a mapping, which maps the quantization parameter 450, 550 onto a respective initialization value of a respective state variable value. The mapping may, for example, be a substantially linear mapping, e.g. linear except for quantization effects and / or rounding effects, and / or a mapping comprising one or more clipped linear mappings, wherein a range of values of the initialization values are limited to a predetermined range by the clipping.
[0330] FV -ACr - FH241023PEP-2025349100.DOCX As an optional feature, the initialization value determination unit 440, 540, 3340 may, for example, be configured to obtain an intermediate state value, e.g. inistate, based on which the one or more initialization values of the one or more state variable values may be obtained.
[0331] The initialization value determination unit 440, 540, 3340 may, for example, be configured to use a substantially linear mapping, which maps the quantization parameter 450, 550 onto the intermediate state value. The intermediate state value may be mapped, using one or more clipped linear mappings, onto a respective initialization value of a respective state variable value, e.g. included in initialization value information 441, 541 , e.g. 3341 a, b.
[0332] Furthermore, as an optional feature, the initialization value determination unit 440, 540, 3340 may be configured to obtain (for example on the basis of a, optionally single, initialization value, e.g. an initialization value comprising between 8 bit and 12 bit, for example e.g. a 12 bit initialization value, e.g. initValue) a first support value, e.g. probStart, a second support value, e.g. probEnd, a quantization parameter mapping start value, e.g. qpPosProbO, describing a value of the quantization parameter, e.g. qp, 450, 550, which is mapped onto the first support value of the linear mapping or using a linear mapping, and a quantization parameter mapping range value, e.g. e.g. log2qpRange, describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value of the linear mapping or using a linear mapping.
[0333] Hence, the initialization value determination unit 440, 540, 3340 may be configured to map the quantization parameter 450, 550 onto the one or more initialization values using the first support value, the second support value, the quantization parameter mapping start value and the quantization parameter range value.
[0334] Optionally, the initialization value determination unit 440, 540, 3340 may, for example, be configured to determine a slope value, e.g. slopeMul, in dependence on a difference (e.g. as the difference) between the second support value, e.g. probEnd, and the first support value, e.g. probStart, and to determine a quantization parameter deviation value, e.g. currQP, using a difference (e.g. as the difference) between the quantization parameter value, e.g. qp, and the quantization parameter mapping start value, e.g. qpPosProbO, and to determine the intermediate state value, e.g. inistate_num or inistate, using a combination, e.g. summation, of a product of the slope value, e.g. slopeMul, and of the quantization parameter deviation value, e.g. currQP, with a scaled version, e.g. probStart«log2qpRange, of the first support value, e.g. probStart.
[0335] FV -ACr - FH241023PEP-2025349100.DQCX Optionally, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the quantization parameter mapping start value, e.g. qpPosProbO, on the basis of a first block, qpPosBrobOBits, of two bits of the initialization value, e.g. initValue, for example, such that the quantization parameter mapping start value can take four different values, for example, such that the quantization parameter mapping start value can take values of 0, 2, 6 and 14.
[0336] Optionally, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the quantization parameter mapping range value, e.g. e.g. log2qpRange, on the basis of a second block, e.g. log2qpRangeBits, of two bits of initialization value, e.g. initValue, for example such that the quantization parameter mapping range value can take four different values, for example, such that the quantization parameter mapping range value can take values of 3, 4, 5 and 6.
[0337] Optionally, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the first support value, e.g. probStart, on the basis of a third block, e.g. probStartBits, of four bits of initialization value, e.g. initValue, for example such that the first support value can take 16 different values.
[0338] Optionally, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the second support value, e.g. probEnd, on the basis of a fourth block, probEndBits, of four bits of initialization value, e.g. initValue, for example such that the first support value can take 16 different values.
[0339] As an example, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the quantization parameter mapping start value qpPosProbO on the basis of a, e.g. first, block qpPosBrobOBits of two bits, e.g. of the initialization value; e.g. of initValue, according to qpPosProbO = (2 « qpPosProbOBits) - 2.
[0340] As an example, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the quantization parameter mapping range value log2qpRange on the basis of a, e.g. second, block log2qpRangeBits of two bits, e.g. of the initialization value; e.g. of initValue, according to log2qpRange = log2qpRangeBits + 3.
[0341] As an example, the initialization value determination unit 440, 540, 3340 may, for example, be configured to derive the first support value probStart on the basis of a, e.g. third, block probStartBits of four bits, e.g. of the initialization value; e.g. of initValue, according to
[0342] FV -ACr - FH241023PEP-2025349100.DOCX probStart = probStartBits * 8 and to derive the second support value probEnd on the basis of a, e.g. fourth, block probEndBits of four bits, e.g. of the initialization value; e.g. of initValue, according to probEnd = probEndBits * 8.
[0343] As an example, the initialization value determination unit 440, 540, 3340, may, for example, be configured to obtain a first block of two bits, e.g. qpPosProbOBits, representing the quantization parameter mapping start value, a second block of two bits, log2qpRangeBits, representing the quantization parameter mapping range value, e.g. e.g. log2qpRange, a third block of four bits, probStartBits, representing the first support value, e.g. probStart, and a fourth block of four bits, probEndBits, representing the first support value, e.g. probEnd, on the basis of the initialization value initValue according to qpPosProbOBits = initValue & 3 log2qpRangeBits = (initValue » 2) & 3 probStartBits = (initValue » 4) & 15 probEndBits = (initValue » 8) & 15.
[0344] As another optional feature, the initialization value determination unit 440, 540, 3340, may, for example, be configured to obtain the one or more initialization values of the one or more state variable values using one or more, e.g. substantially, linear mappings, respectively followed by a clipping operation.
[0345] In particular, as optional features, the initialization value determination unit 440, 540, 3340, may, for example, be configured to obtain an initialization value of a first state variable value using a, e.g. substantially, linear mapping, followed by clipping operation, or to obtain an initialization value of a first state variable value using a sequence of, e.g. substantially, linear mappings, followed by clipping operation.
[0346] In particular, as optional features, the initialization value determination unit 440, 540, 3340, may, for example, be configured to obtain an initialization value of a second state variable value using a, e.g. substantially, linear mapping, followed by clipping operation, or to obtain an initialization value of a second state variable value using a sequence of, e.g. substantially, linear mappings, followed by clipping operation.
[0347] As discussed before, the initialization value determination unit 440, 540, 3340, may, for example, be configured to determine the initialization values using an intermediate state value (e.g. an intermediate state variable value). The initialization value determination unit 440, 540,
[0348] FV -ACr - FH241023PEP-2025349100.DOCX 3340, may, for example, be configured to obtain such an intermediate state value inistate for a determination of an initialization value of a state variable Si in dependence on the quantization parameter qp 450, 550 according to slopeMul = probEnd - probStart add = (1 « log2qpRange) » 1 currQP = qp - qpPosProbO inistate_num = currQP * slopeMul + (probStart « log2qpRange) inistate = (inistate_num + add ) » log2qpRange.
[0349] Furthermore, the initialization value determination unit 440, 540, 3340, may, for example, be configured to obtain an initialization value of a state variable Si according to initState = inistate « (b; - 7) clip = 1 « (bi - 5) center = 1 « (^ - 1) si = min( max( initState, clip ), (1«b;) - clip ) - center wherein bi is a number of bits used for representing the state variable value Si.
[0350] As another optional feature, the encoder 400 (and accordingly encoder 100) and respectively decoder 500 (and accordingly decoder 200) may, for example, be configured to use a plurality of, e.g. a set of, channel context models per channel signal, wherein separate, e.g. different, sets of context models are used for the encoding / decoding of different channel signals and to initialize state variables of, e.g. separate, channel context models associated with an encoding / decoding of different channel signals using identical initialization values.
[0351] Accordingly, the arithmetic encoder 400 (and / or 100) may, for example be configured, e.g. using encoding unit 410 (and / or 110), to encode a plurality of channel signals by arithmetically encoding one or more respective symbol values representing sample values of the respective channel signals.
[0352] Accordingly, the arithmetic decoder 500 (and / or 200) may, for example, be configured, e.g. using decoding unit 510 (and / or 210), to decode a plurality of channel signals by arithmetically decoding one or more respective symbol values representing sample values of the respective channel signals.
[0353] As another optional feature, the initialization value determination unit 440, 540, 3340, may, for example, be configured to select a common, e.g. global, set of initialization values for initializing state variables for an arithmetic encoding / decoding of a plurality of channel signals.
[0354] FV -ACr - FH241023PEP-2025349100.DQCX Accordingly, the arithmetic encoder 400 (and / or 100) may, for example, be configured to include, e.g. using encoding unit 410 (and / or 210), a signaling information, e.g. a flag or a signaling value, defining the selected common set of initialization values, into the encoded representation 402.
[0355] Accordingly, the arithmetic decoder 500 (and / or 100) may, for example, be configured to obtain, e.g. using decoding unit 510 (and / or 110), such a signaling information, e.g. a flag or a signaling value, from the encoded representation 501 , e.g. in order to set the initialization values accordingly.
[0356] As another optional feature, the initialization value determination unit 440, 540, 3340, may, for example, be configured to decide whether to use a same set of initialization values for initializing state variables of, e.g. separate, channel context models associated with the encoding / decoding of different channel signals, or whether to use separate sets of initialization values for initializing state variables of, e.g. separate, channel context models associated with the encoding / decoding of different channel signals.
[0357] Accordingly, the arithmetic encoder 400 may, for example, be configured to include, e.g. using encoding unit 410, a signaling information indicating whether to use a same set of initialization values for initializing state variables of, e.g. separate, channel context models, e.g. when decoding the different channel signals, or whether to use separate sets of initialization values for initializing state variables of, e.g. separate, channel context models, e.g. when decoding the different channel signals, into the encoded representation 402, e.g. comprising an encoded representation of the plurality of symbols.
[0358] Accordingly, the arithmetic decoder 500 may, for example, be configured to obtain, e.g. using decoding unit 510, such a signaling information from the encoded representation 501.
[0359] As another optional feature, the arithmetic encoder may, for example, be configured, e.g. using encoding unit 410, to include, into the encoded representation 402, a signaling information, e.g. a one bit flag, indicating whether a further signaling information, e.g. a further syntax element per channel, indicating on a per channel basis which initialization value or set of initialization value, out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used, is included into the encoded representation 402.
[0360] FV -ACr - FH241023PEP-2025349100.DOCX Accordingly, the arithmetic decoder 500 may, for example, be configured to obtain, e.g. using decoding unit 510, such a signaling information from the encoded representation 501 , e.g. in order to perform a respective initialization accordingly.
[0361] As another optional feature, the arithmetic encoder may, for example, be configured, e.g. using encoding unit 410, to selectively include, into the encoded representation 402, a per-channel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used.
[0362] Accordingly, the arithmetic decoder 500 may, for example, be configured to selectively obtain, e.g. using decoding unit 510, such a signaling information from the encoded representation 501 , for example in order to set the initialization value determination unit 510 accordingly.
[0363] For example, the per-channel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used, may be a one bit information, e.g. encoded using one bin and using one context model.
[0364] Furthermore, as an optional feature, the state variable update unit 430, 530 may, for example be configured to update a first state variable value s0and a second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ s^ » ( - 5))] S( = S( + sign ■ add wherein bin designates a respective encoded / decoded symbol (e.g. as indicated by symbol value information 411 , 511), wherein b1 >b0>=7 and wherein w1>w0>1.
[0365] As a general remark, the encoded representation 402 and respectively 501 may, for example, comprise an information about the quantization parameter 450, 550. Hence, the encoder 400 may, for example determine such a quantization parameter and / or may be provided with the same and to may, for example encode a respective information about the quantization parameter into the encoded representation 402. Accordingly, decoder 500 may decode the information, in order to adapt the quantization parameter 550.
[0366] FV -ACr - FH241023PEP-2025349100.DOCX Furthermore, respective additional information, e.g. used for the mapping of the quantization parameter, e.g. such as the first support value, the second support value, the quantization parameter mapping start value and the quantization parameter range value, e.g. the initialization value initValue, may as well, optionally, be provided in the encoded representation 402, 501.
[0367] In the following, different inventive embodiments and aspects will be described in sections “Context model initialization for waveform coding and fast start mechanism”, in particular in sections “Introduction to embodiments”, and “Embodiments according to the invention”.
[0368] Also, further embodiments will be defined by the enclosed claims.
[0369] It should be noted that any embodiments as defined by the claims and the above-description can be supplemented by any of the details (features and functionalities) described in the above-mentioned sections.
[0370] Also, the embodiments described in the above-mentioned sections can be used individually, and can also be supplemented by any of the features in another section, or by any feature included in the claims, or by any feature included in above-description.
[0371] Also, it should be noted that individual aspects described herein can be used individually or in combination. Thus, details can be added to each of said individual aspects without adding details to another one of said aspects.
[0372] Moreover, features and functionalities disclosed herein relating to a method can also be used in an apparatus (configured to perform such functionality). Furthermore, any features and functionalities disclosed herein with respect to an apparatus can also be used in a corresponding method. In other words, the methods disclosed herein can be supplemented by any of the features and functionalities described with respect to the apparatuses.
[0373] Also, any of the features and functionalities described herein can be implemented in hardware or in software, or using a combination of hardware and software, as will be described in the section “implementation alternatives”.
[0374] Context model initialization for waveform coding and fast start mechanism
[0375] FV -ACr - FH241023PEP-2025349100.DCCX In the following, inter alia, embodiments according to the invention may be discussed which comprise a context model initialization for waveform coding and / or which comprise a fast start mechanism.
[0376] Introduction to embodiments
[0377] Embodiments of the present invention describe or comprise a method for initializing the probability estimator of a context model for entropy coding (for example, binary arithmetic coding) and a so-called fast start mechanism. Such a probability estimator comprises, or for example consists of N (for example, N = 1 or N = 2) state variables Sj that may, for example, store a signed integer index that may, for example, represent a probability estimate. Let s;, for example, be in 2's complement representation, for example, using bt bits and let, for example, bmax= max(b0, b , . . bj^^. be the maximum number of bits of all state variables. When the probability estimator comprises or, for example, consists of two state variables {N = 2), the probability estimate may, for example, be calculated as follows. First, a combined state variable may, for example, be calculated as:
[0378] Note that s may, for example, be a signed integer, e.g. with bmax+ 1 bits.
[0379] Left shift («) and right shift (») operators may, for example, be or are with respect to the 2's complement representation in this document and may, for example, also be defined for negative integers.
[0380] In a preferred embodiment, this probability estimator may, for example, correspond to the estimator as used in the Neural Network Coding (NNC) standard, for example, as specified in ISO / IEC 15938-17. In this case, for example, b0= 8 and, for example, br= 12.
[0381] The combined state s may, for example, represent a probability value that can, for example, be used for binary arithmetic coding.
[0382] In a preferred embodiment, CABAC may, for example, be used for entropy coding, e.g. with the following coding interval subdivision table: rpsTable2D
[0032] [8] = {
[0383] FV -ACr - FH241023PEP-2025349100.DCCX { 128, 142, 156, 171, 185, 199, 213, 228},
[0384] { 112, 125, 137, 150, 162, 175, 187, 200 },
[0385] { 97, 108, 119, 130, 141, 152, 163, 174},
[0386] { 84, 93, 103, 112, 121, 131, 140, 150},
[0387] { 74, 82, 90, 99, 107, 115, 123, 132},
[0388] { 65, 72, 79, 87, 94, 101, 108, 116},
[0389] { 57, 63, 70, 76, 82, 89, 95, 102},
[0390] { 50, 56, 61, 67, 73, 78, 84, 90},
[0391] { 45, 50, 55, 60, 65, 70, 75, 80},
[0392] { 39, 43, 48, 52, 56, 61, 65, 70},
[0393] { 34, 38, 42, 46, 50, 54, 58, 62},
[0394] { 30, 33, 37, 40, 43, 47, 50, 54},
[0395] { 27, 30, 33, 36, 39, 42, 45, 48},
[0396] { 23, 26, 28, 31, 34, 36, 39, 42},
[0397] { 20, 22, 24, 27, 29, 31, 33, 36},
[0398] { 18, 20, 22, 24, 26, 28, 30, 32},
[0399] { 15, 17, 19, 21, 22, 24, 26, 28},
[0400] { 14, 16, 17, 19, 21, 22, 24, 26},
[0401] { 12, 13, 15, 16, 17, 19, 20, 22},
[0402] { 11, 12, 13, 15, 16, 17, 18, 20},
[0403] { 10, 11, 12, 13, 14, 15, 16, 18},
[0404] { 9, 10, 11, 12, 13, 14, 15, 16},
[0405] { 7, 8, 9, 10, 11, 12, 13, 14}
[0406] { 7, 8, 9, 10, 11, 12, 13, 14}
[0407] { 5, 6, 6, 7, 8, 8, 9, 10},
[0408] { 5, 6, 6, 7, 8, 8, 9, 10},
[0409] { 4, 5, 5, 6, 6, 7, 7, 8},
[0410] { 4, 5, 5, 6, 6, 7, 7, 8},
[0411] { 3, 3, 4, 4, 4, 5, 5, 6},
[0412] { 3, 3, 4, 4, 4, 5, 5, 6},
[0413] { 2, 2, 2, 3, 3, 3, 3, 4},
[0414] { 2, 2, 2, 3, 3, 3, 3, 4}
[0415] Note that this table may, for example, be identical (or may, for example correspond) to the one used in NNC (variable rlpsTable in the NNC standard) but written as a 2D-table instead of a 1D table.
[0416] FV-ACr- FH241023PEP-2025349100.DOCX In a preferred embodiment, the subinterval width RLPSthat may, for example, correspond to the less probable symbol (LPS) as it is used by CABAC may, for example, be derived as follows:
[0417] Note that R may, for example, be the coding interval width before interval subdivision. For example, it may correspond to the variable IvICurrRange in the NNC standard. In this example, tabldx may, for example, be an unsigned 6 bit value.
[0418] In a preferred embodiment, b0= 10 and / or b = 13.
[0419] After encoding or decoding of a binary symbol (bin), the state variables may, for example, be updated dependeny (e.g. in dependency) of the value of the bin (for example, variable bin equal to 0 or 1) and / or in dependency of an adaptation rate parameter wi tfor example, according to the follows ordered steps: lookupTableHyp
[0032] =
[0420] {
[0421] 157, 143, 129, 115, 101, 87, 73, 59, 45, 35, 29, 23, 17, 13, 9, 5,
[0422] 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0
[0423] } sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ( sign ■ S;) » (b; - 5))]
[0424] Note that this update rule may, for example, be identical to the update rule of the NNC standard when N = 2, b0= 8, and b = 12.
[0425] In a preferred embodiment, w0= 2 and / or w±= 5.
[0426] Embodiments according to the Invention
[0427] In a preferred embodiment, a so-called fast-start mechanism may, for example, be employed as follows. The first F bins of a context model (for example, F = 63) may, for example, update s0optionally using a value of w0= 1, for example, while w0= 2 is used for all remaining bins.
[0428] FV -ACr - FH241023PEP-2025349100.DCCX In addition, state variable S-L may, for example, not be updated for the first F bins but may, for example, be derived from s0, for example, as follows: sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ((sign ■ s0) » (b0- 5))]
[0429] Note that this may, for example, require a counter variable for each context model, for example, in order to know when the first F bins have been coded. For = 63, an unsigned integer variable with 6 bit may, for example, be sufficient.
[0430] The fast start mechanism may, for example, allow for a quick adaptation of the state variables to the statistics of the bin sequence to be coded, which may, for example, reduce the overall bit rate produced.
[0431] In another preferred embodiment (which may , for exmaple be combined with the preceding embodiment and / or aspects thereof), state variables may, for example, be initialized in dependence on a parameter initValue that may, for example, be optimized, for example, for each context model individually and / or optionally on a quantization parameter qp from which, for example, a quantization step size may be derived. The parameter initValue may, for example, be or shall be a 12 bit integer that can, for example, be translated into the following four parameters: qpPosProbOBits = initValue & 3 log2qpRangeBits = (initValue » 2) & 3 probStartBits = (initValue » 4) & 15 probEndBits = (initValue » 8) & 15
[0432] The four parameters may, for example, be further converted into the four variables: qpPosProbO = (2 « qpPosProbOBits) - 2 log2qpRange = log2qpRangeBits + 3 probStart = probStartBits * 8 probEnd = probEndBits * 8
[0433] FV -ACr - FH241023PEP-2025349100.DOCX From these four variables, an initial state may, for example, be derived as a 7 bit unsigned integer variable. Variable qpPosProbO may, for example, be the qp value for which the initial state may or shall equal probStart and qpPosProbO + (1 « og2qpRange) may, for example, be the qp value for which the initial state may or shall equal probEnd. For example, for all other qp values, a linear interpolation may, for example, be applied, optionally followed by a clipping, for example, to a valid range. This interpolation can, for example, be expressed as the following ordered steps: slopeMul = probEnd - probStart add = (1 « log2qpRange) » 1 currQP = qp - qpPosProbO inistate_num = currQP * slopeMul + (probStart « log2qpRange) inistate = (inistate_num + add ) » log2qpRange
[0434] The variable inistate can, for example, now be used to set the state variables of a context model, for example, according to the following ordered steps: initState = inistate « (b; - 7) clip = 1 « (bi - 5) center si = min( max( initState, clip ), (1«b;) - clip ) - center
[0435] In a preferred embodiment, a waveform codec may, for example, encode a waveform signal, for example, with C channels. In order to encode one channel, the codec may, for example, use or may, for example, require a set of channel context models. For initialization of these channel context models, a set of initialization values may, for example, be used. For example, each channel may, for example, maintain its own set of context models that are used for encoding. However, they may, for example, all share the same initialization values.
[0436] In another preferred embodiment, a syntax element may, for example, be encoded, for example, indicating whether, for example all, channels use the same set of initialization values for context model initialization or whether it is signalled in the bitstream , for example, for each channel, which set of initialization values shall be used.
[0437] In another preferred embodiment, a syntax element may, for example, be encoded, for example, indicating that a further syntax element per channel channel_ctx_set_id is encoded
[0438] FV -ACr - FH241023PEP-2025349100.DQCX which may, for example, indicate optionally for each channel which one out of two or more candidate sets of initialization values is used for context model initialization.
[0439] In another preferred embodiment, the syntax elements channel_ctx_set_id can, for example, only be 0 or 1 and they are encoded, for example, using one bin and / or one context model.
[0440] The above description is extended in the following by the presentation of further embodiments. Before this, however, the description proceeds with a presentation of a possible framework or codec into which the embodiments described above as well as the embodiments described further below may be built into. Many details described in this framework are, however, optional when being combined with any of the above or subsequently described embodiments. To be more precise, the framework is described with respect to Fig. 6 which shows an encoder for encoding a multi-channel digital signal 14 into a data stream 16 (e.g. comprising or corresponding to encoded representation 102, 402, 201, 501) as well as decoder 12 for decoding the multi-channel digital signal 14 from data stream 16. This description of Fig. 6 shall be seen as a presentation of new embodiments of the present application which result when combining any of the embodiments described above or any of the embodiments described subsequently is combined with the decoder 12 or encoder 10 of Fig. 6 either by adopting all details / functionalities described with respect to Fig. 6 or with leaving-out some of the details / functionalities described with respect to Fig. 6. Sometimes such “optional” features of Fig. 6 are explicitly identified as being optional with respect to the combination of the previously and subsequently described embodiments, but the just-mentioned possible combinations of the previously / subsequently explained embodiments with the description of Fig. 6 shall not be restricted to the these explicitly identified variations of Fig. 6 in terms of leaving-out certain features.
[0441] In Fig. 6, the multi-channel digital signal 14 is illustrated by way of an array of samples with the samples being illustrated as small squares 18. Each line / row corresponds to a certain channel of the multi-channel digital signal 14. Each channel of signal 14 may have associated therewith a respective channel ID and Fig. 6 shows these channels as being ordered according to their channel ID along vertical axis 20 which, thus, corresponds to a “source” channel axis 20. The horizontal axis 22 corresponds to time so that samples 18 forming one column, or being horizontally aligned, are samples belonging to one common time instant. Such set / column of temporally co-located samples 18 is illustrated in Fig. 6 at 24.
[0442] Each channel, thus, forms a digital time-varying signal or time / amplitude or time-to-amplitude signal. The multi-channel digital signal m might have been obtained by at least one of
[0443] FV -ACr - FH241023PEP-2025349100.DOCX Electrocardiography, Electroencephalography, Electromyography or seismic measurement. Differently speaking, the multi-channel digital signal might be a bio-physiological waveform data such as an electroencephalography (EEG) signal, an electrocardiogram (ECG), or an electromyography (EMG) signal, or seismic waveform data. However, each channel / signal might alternatively be another sort of waveform signal data such as scalar media data such as an audio signal and the signal 14 might be a multi-channel audio signal.
[0444] Fig. 6 illustrates the option according to which signal 14 is not coded directly, i.e., in the original domain 26, but in a so-called “coded domain” 28 which might differ from the original domain 26 by one or more of 1) channel transformation, 2) channel permutation and 3) temporal mutual channel alignment. The channel transformation, if applied, transforms, per sample time instant, a set or column 24 of samples from domain 26 to domain 28. Thus, in domain 28, the sample pitch and the time axis is the same as in domain 26, but the meaning of the channels is different, i.e., the “source” channels of domain 26 become transformed channels in domain 28. Accordingly, the vertical axis in Fig. 6 for domain 28 is denoted as 32. Note that the channel transformation might leave the number of channels unchanged so that there is the same number of channels in domain 26 as well as domain 28, but different approaches are also possible. Generally, the channel transformation would aim at reducing redundancy and trying to condense the channels’ energy onto a fewer number of channels in domain 28. As said, the channel transformation is optional. Accordingly, in general terms, the channels in domain 28 are called “coded channels” in order to distinguish them from the “original” or “source” channels of digital signal 14 in domain 26. The permutation is also optional and may be used in combination with, or without, the channel transformation. If used in combination with the channel transformation, the permutation may be performed prior to and / or or subsequent to the channel transformation in order to permute / sort the source channels prior to transformation and the coded channels subsequent to the channel transformation. The channel transformation might be a DCT, DST, FFT or any other transformation. The temporal mutual alignment is also optional and might be seen as a constant temporal alignment between the source channels or the coded channels.
[0445] The module in encoder 10 performing the one or more of channel transformation, channel permutation and temporal mutual alignment is indicated in Fig. 6 as block 34. Side information 36 might be used in order to signal information on one or more of the following: 1) The channel transformation used, 2) information on the permutation(s) among the source channels and / or coded channels and 3) information on the mutual temporal alignment / delays between the source channels or coded channels wherein the temporal mutual alignment might be restricted to full sample precision. A corresponding block 38 in decoder 12 performs the reverse step,
[0446] FV -ACr - FH241023PEP-2025349100.DGCX i.e., performs one or more of: 1) a channel retransformation, 2) a re-permutation of the source channels and / or coded channels and 3) a temporal re-alignment of the source channels or coded channels. Note, that if no channel transformation takes place, the coded channels are, in fact, equal to the source channels except for being temporally mutually aligned or being differently sorted due to permutation. Block 38 might be controlled by the before-mentioned side information 36.
[0447] Thus, the “actual coding” relates to the coded channels in domain 28. In the coded domain 28, the coded channels are depicted in Fig. 6 as lines or rows of samples 40, each extending along time axis 22, the coded channels being depicted one on top of the other along coded channel axis 32 - potentially ordered according to a coded channel ID they have associated therewith - so as to result into an array of samples 40. Again, although Fig. 6 depicts the case that the number of source channels equals the number of coded channels, the number might be different. Further, if channel transformation is used, while there is no longer a clear association between source channels on the one hand and coded channels on the other hand, the temporal association remains: For each temporally co-located samples 24, there is a corresponding temporally co-located set 42 of samples 40 of the coded channels, wherein the set 42 in domain 28 is a column and might be a set of horizontally mutually offset samples in case of, and according to, the mutual temporal alignment, if applied. In case of Fig. 6, it has been assumed that no such temporal alignment took place so that both sets 42 and 24 are pure columns in the time / channel representation.
[0448] The actual coding is done in units of so-called temporal blocks 30. The term “block” or “temporal block” 30 is used so as to denote both a temporal portion of the multi-channel signal in domain 28, i.e., the set of coded channels, as well as a temporal portion of a certain coded channel. That is, for each temporal block 30, each coded channel has a temporal block such as block 640 depicted for some temporal block 30c and same are mutually co-located. The coding is done sequentially along these blocks 640, by following a coding / decoding order, which traverses the blocks 640 temporal block 30 by temporal block 30 with traversing temporally co-located blocks of the coded channels along a channel order corresponding to the order of the coded channels along axis 32. This coding / decoding order is illustrated in Fig. 6 at 60. That is, in case of temporal block 640 being the block currently to be coded / decoded, the previously decoded / encoded temporal blocks include all preceding temporal blocks of all coded channels as well as the temporally co-located temporal blocks of coded channels preceding the coded channel 92 of temporal block 640 in channel order. These previously coded / decoded temporal blocks and their samples are illustrated in Fig. 6 by way of shading. In this regard, note that in Fig. 6, merely one temporal block 640 has been illustrated explicitly
[0449] FV -ACr - FH241023PEP-2025349100.DQCX in order to reduce the complexity of Fig. 6. Thus, in the specification herein, reference sign 640 is sometimes used to indicate the currently encoded / decoded temporal block or to stand representatively for all temporal blocks. Further, as depicted in Fig. 6, the partitioning of signal 14 into temporal blocks 30 and 640, respectively, might be done in a manner so that these blocks 30 and 640, respectively, are non-overlapping.
[0450] The actual coding in units of the temporal blocks 640 is performed predictively. That is, the encoder 10 comprises a block predictor 62 which predicts the samples of the currently coded temporal block 640, thereby yielding a prediction signal 64, and the prediction residual 66 formed by a subtraction between the actual sample values of temporal block 640 and the predicted samples of prediction signal 64 formed at a subtractor 68 is coded into the data stream 16 by residual coder 70. The residual coding in residual coder 70 may, or may not, involve a coding error by means of quantization. In any case, block predictor 62 uses the reconstructable version as being available by previously coded temporal blocks in order to obtain the prediction signal 64. This reconstructable version 72 might be derived at encoder 10 by means of a residual decoder 74 which reverses, potentially under coding loss, such as quantization, e.g. by means of dequantization, the residual signal 76 as coded into data stream 16, and an adder 78 which sums-up prediction signal 64 and the reconstructable residual signal 80 as obtained by residual decoder 74. To be more precise, let’s call the channel-individual temporal blocks 640 subblocks with temporally collocated subblocks of all channels forming a temporal block 30. Then, the prediction in module 62 or, to be more precise, the prediction at encoder and decoder, is performed in units of the subblocks 640, i.e. subblock wise. The encoder is free to choose different prediction modes for the subblocks within one block 30. As explained in more detail herein, within one block 30, one subblock 640 may be predicted based on one or more subblocks previously - according to the decoding order 60 - en / decoded within this block 30, while another subblock 640 within that block 30 might be coded / decoded based on the previously en / decoded subblock 640 of the same channel (but within the previous block 30). The transform residual en / decoding is then performed subblock wise by use of a onedimensional transform signaled in the data stream as described hereinbelow.
[0451] The decoder 12 decodes the coded channels from data stream 16 in a corresponding manner, i.e., in units of the temporal blocks 30 or in temporal blocks 640, respectively, and using predictive decoding. To this end, the decoder 12 comprises a residual decoder 82, an adder 84 and a block predictor 86 which correspond to, and are mutually connected in the same manner as, elements 74, 78 and 62 of encoder 10. That is, the residual decoder 82 derives from the residual signal 76 in data stream 16 the reconstructable residual signal 80 for a currently decoded temporal block 640 which is then subject to addition with prediction signal
[0452] FV -ACr - FH241023PEP-2025349100.DOCX 64 derived by block predictor 86 for temporal block 640 on the basis of the reconstructed version 72 of previously decoded temporal blocks at adder 84. The output of adder 84, thus, yields the reconstructed version 72 of the currently decoded temporal block 640 and becomes part of the pool of already decoded samples of previously decoded temporal blocks when the temporal blocks of the coded channels are, in this manner, traversed along coding / decoding order 60 so as to reconstruct the coded channels in the coded domain 28.
[0453] Note that the above description concentrated on the so-called sample prediction where samples of a current block 640 are predicted based on reconstructed samples of one or more previously decoded blocks, but coding inter dependencies, namely intra-channel and interchannel coding dependencies may be exploited not only in terms of sample prediction, but also in terms of other coding tools involving, for instance, parameter prediction and / or context derivation.
[0454] In order to enable a high degree of random access capability, some of the temporal blocks 30 may be coded in a random access manner meaning that the coded channels therein are coded independent from previous temporal blocks 30. Imagine, for instance, that temporal blocks 30b and 30e are random access temporal blocks. Then, none of the temporal channel blocks 640 in temporal block 30b as well as 30e would depend on any preceding temporal block 640 and no coding dependency would cross these temporal blocks 30b and 30e, that is no temporal block 640 within any of temporal block 30b-30d would be coded depending on any block 640 temporally preceding temporal block 30b, and no temporal block 640 within any of temporal block 30e and following would be coded depending on any block 640 temporally preceding temporal block 30e.
[0455] Thus, in other words, coding dependencies are restricted so as to not reach-out beyond the border of a random access temporal block 30b and 30e towards any preceding temporal block 30. Such restriction might also hold for intermediate temporal blocks 30c to 30d between random access temporal blocks 30b and 30e in that same may not depend on any temporal block preceding the leading one among the random access temporal blocks 30b and 30e, here block 30b. Accordingly, leading temporal borders of the random access temporal blocks 30b and 30e are indicated by bold lines in Fig. 6. In a variant, the restriction is not valid for all en / decoding stages. For instance, while the grouping might hold true for prediction, but the residual en / decoding dependencies might cross borders between channel groups. It might be the case, for instance, that for the entropy coding and decoding, all channels are coded jointly, i.e. using a single arithmetic coding engine, but that for the sake of prediction and reconstruction, the channels are grouped as described into independent groups such that, after
[0456] FV -ACr - FH241023PEP-2025349100.DOCX entropy decoding, each such group can be reconstructed completely independently from each other group. This means that no prediction of sample values or any other information is supported between different channel groups.
[0457] Further, it might be that the coding of the coded channels also interrupts or restricts interchannel dependencies. For example, one or more of the coded channels might be coded as random access coded channels so that same do not use inter-channel dependencies, but merely intra-channel dependencies. The restriction of inter-channel coding dependencies might follow the channel order 32: that is, coding of these random access coded channels and the intermediate coded channels therebetween would be restricted so as to not reach-out beyond such a random access coded channel toward any coded channel preceding that random access coded channel in channel order along axis 32. Two such random access coded channels 88a and 88b and the resulting inter-channel dependency borders are illustrated in Fig. 6. Note that the restriction of inter-channel dependencies might be differently and is illustrated here merely as an example where the definition of, along channel order 32, interspersed random access channels 88a and 88b defines channel groups covering contiguous channels along the channel order 32. Other groups of channels might be defined, which do not necessarily follow the channel order 32, and inter-channel dependencies might be restricted not to render any channel of one group dependent on a channel of any other group, and within each group the inter-channel dependencies may also by restricted or each channel might by coded inter-channel dependent on any previously coded channel within its channel group.
[0458] The block predictor 62 and 86 of encoder 10 and decoder 12, respectively, operate synchronously, i.e., they generate the same prediction signal 64 based on the previously encoded / decoded samples of previously encoded / decoded temporal blocks 640. On encoder side 10, the prediction for a certain temporal block 640 may be accompanied or determined by one or more prediction parameters. Same might be determined on encoder side based on a rate / distortion optimization. These prediction parameters 90 are coded into data stream 16 and they are decoded from data stream 16 and used by block predictor 86 so as to perform the same prediction.
[0459] It might be that encoder 10 and decoder 12 support more than one prediction mode. For instance, encoder 10 and decoder 12 may support an intra prediction mode (which mode may also be called block-copy mode) according to which the currently encoded / decoded temporal block 640 is predicted based on the reconstructable sample values of previously encoded / decoded temporal blocks of the same coded channel to which the currently
[0460] FV -ACr - FH241023PEP-2025349100.DOCX encoded / decoded temporal block 640 belongs, which is coded channel 92 in the example of Fig. 6. Additionally or alternatively, encoder 10 and decoder 12 may support an inter-prediction mode (which mode may also be called cross-channel prediction mode) according to which the currently encoded / decoded temporal block 640 is predicted based on the reconstructable sample values of previously encoded / decoded temporal blocks of one or more coded channels preceding - in coding order 32 - the coded channel 92 to which the currently encoded / decoded temporal block 640 belongs. Additionally or alternatively, there may be a mixed prediction mode according to which the prediction signal 64 is obtained by both, reconstructed / reconstructable sample values of previously encoded / decoded temporal blocks of coded channel 92 itself as well as reconstructed / reconstructable sample values of one or more coded channels preceding coded channel 92 in channel order along axis 32. Beyond this, there may be temporal blocks 640 which are coded without any prediction at encoder 10 and decoded without any prediction at decoder 12 such as the first temporal blocks 640 in the tiles 94 resulting from mutually separating the temporal blocks by means of the random access borders 96 on the one hand and the random access channel borders 98 on the other hand. This corresponds to the prediction signal 64 being set to zero and this may form an additional mode which could be called bypass mode. Additionally, or alternatively, there may be other modes such as ones deriving a DC predictor or linear function predictor for block 64 based on immediately preceding samples which immediately precede block 640. The prediction parameters 90 may, thus, contain for a currently encoded / decoded temporal block 640 a prediction mode flag or prediction mode indicator indicating the prediction mode to be used for this currently encoded / decoded temporal block 640 and, optionally, one or more parameters parameterizing the prediction mode to be used for this currently encoded / decoded temporal block 640. It might also be that the prediction parameters are themselves coded predictively from already reconstructed blocks 640. In this prediction process, the laid out random-access capabilities in channel- and temporal-direction are, as an example, always maintained, i.e. the mentioned prediction of prediction parameters may never be supported across such a random access segment.
[0461] As mentioned, the aforementioned coding dependencies ought not to cross any of the borders 96 and 98 not only result from the just-described sample prediction capabilities of block predictor 62 and 86, respectively, but may optionally also result from other mechanisms such as parameter prediction according to which parameters such as the aforementioned prediction parameters 90 for a certain temporal block 640 are predicted based on coding parameters conveyed in the data stream 16 for any previous temporal block, or context derivation for context-adaptive entropy coding / decoding any coding parameter such as the prediction parameters 90 or any other side information such as side information 76 and 36 for temporal
[0462] FV -ACr - FH241023PEP-2025349100.DQCX block 640 based on any coding parameter conveyed in the data stream 16 for any preceding temporal block.
[0463] That is, summarizing, the encoder 10 encodes the multi-channel signal 14 by transferring it into the coded domain 28 and then coding the coded channels into data stream 16 in the just- described block-wise and predictive manner, wherein decoder 12 decodes the coded channels of coded domain 28 from data stream 16 and the corresponding block-wise and predictive manner with then gaining the multi-channel signal 14 in its original form 26 based on the coded channels in coded domain 28 by means of segment 38. As said, the channel transformation is optional and if not used, each sample 40 in the coded domain 28 really corresponds to one sample 18 in the original domain 26. If, further, the temporal mutual alignment is not used, each sample 40 exactly corresponds to a sample 18 in the original domain 26 at exactly the same time instant or, differently speaking, all temporally co-located samples 40 in coded domain 28 remain mutually temporally co-located in the original domain 26.
[0464] It should be noted that the temporal blocks 30 might, other than illustrated in Fig. 6, vary in block length rather than being of a constant length as depicted in Fig. 6. For instance, encoder 10 may decide on the length of blocks 30 and signal the block length of blocks 30 (and the corresponding temporal blocks 640 of the coded channels) within data stream 16. Such signaling might be done on block level, such as for each temporal block 30 or, differently speaking for each temporally aligned bundle of blocks 640, so that the encoder may decide on the block size on the fly, or the block length might be signaled in the stream 16 on a larger scope such as for a sequence of blocks or even the whole stream 16.
[0465] As to the residual coder and residual decoder 70 and 82, they may use transform coding / decoding in order to convey the residual signal 76 in data stream 16. That is, the residual signal 80 may be conveyed in data stream 16 in transform or spectral domain by way of transform coefficients in residual signal 76. The transform domain might be a DCT, DST or an FFT. The transform may be non-overlapping, i.e. it may only transform residual signal 80 and its re-transform may only cover residual signal 76 within block 640, and / or may be nonwindowed, i.e. the residual signal might be transformed without any transform window used to temporally shape the residual signal 80 before the transform. The transform domain, i.e. the transformation leading from time domain to transform domain which is used by the encoder to transform the prediction residual signal 80 to be coded und the corresponding retransformation leading from transform domain to time domain which is used by the decoder to derive the prediction residual signal 80, or the transformation, might be selected from a set of available transforms including, for instance, one or more of 1) one or more DCTs, 2) one or
[0466] FV -ACr - FH241023PEP-2025349100.DOCX more DSTs and 3) an identity transform according to which the prediction residual signal 80 is coded into the data stream 14 in time domain directly. The transform may be critically sampled in that the number of transform coefficients resulting from the samples of one block 640 may equal the number of samples of block 640. Again, the samples might be the residual samples or may be, in case of the bypass mode, the channel samples directly.
[0467] The transform coefficients might be encoded by quantization, i.e. they may be quantized with the quantized coefficients then being coded in the data stream 16. Dequantization may occur at decoding. For quantization, either a scalar uniform reconstruction quantizer or a low complexity vector quantizer might be used. In order to determine the quantization indices, the encoder may perform some optimization algorithm such as a rate-distortion optimized scalar quantization, or a trellis quantization with the goal to approximately minimize an approximated Lagrangian rate-distortion cost. At the decoder, the reconstruction process that yiels (e.g. yields) the transform coefficients may be conducted by multiplying the coded quantization indices with a certain step-size and, in case of the use of a low-complexity vector quantizer, by additionally invoking a state-machine based on the parity of previously decoded quantization indices in order to reconstruct the current quantization index.
[0468] In order to control the quantization noise, the transform coefficients might be subject to noise shaping. Spectral noise shaping may be used to shape the quantization noise spectrally. This may be done by signaling in the data stream spectral-band scale factors, i.e. a scale factor per spectral band, which represent a transfer function of a spectral filter which approximates the spectral envelope of the signal within the current block 640 (or its prediction residual, respectively), or signaling filter coefficients defining a temporal filter having a filter transfer function which approximates the spectral envelope of the signal within the current block 640 (or its prediction residual, respectively). On encoder side, spectral noise shaping may be applied in spectral domain by multiplying an inverse of scale factors, either directly signaled in the data stream or derivable from the filter coefficients by filter-to-factor conversion, with the transform coefficients before quantization. That is, at encoder, the coefficients are shaped by the inverse of the spectral envelope. At decoder side, spectral shaping may be applied in spectral domain by multiplying scale factors, either directly signaled in the data stream or derived from the filter coefficients by filter-to-factor conversion, with the transform coefficients, with then (e.g. with then performing the retransformation based on the spectrally shaped transform coefficients). That is, at decoder, the coefficients are shaped by the spectral envelope before applying retransformation. Additionally or alternatively, temporal noise shaping might be applied. To this end, TNS filter coefficients might be determined and signaled by the encoder. The TNS filter coefficients may represent a transfer function which
[0469] FV -ACr - FH241023PEP-2025349100.DQCX approximates the temporal envelope of the current block 640 (or its residual signal). The encoder may apply TNS filtering using the filter coefficients by spectrally filtering the possibly spectrally shaped transform coefficients so as to filter them with a transfer function corresponding to an inverse of the temporal envelope. The TNS filter coefficients might be derived by linear prediction analysis of the possibly spectrally shaped transform coefficients so as to derive a linear prediction filter, then used as TNS filter, which minimizes a prediction residual when spectrally applied on the possibly spectrally shaped transform coefficients. At the encoder, the TNS filtered coefficients are then quantized and entropy coded. At decoder side, the inverse takes place: the possibly spectrally shaped transform coefficients are inversely TNS filtered before applying retransformation. Additionally or alternatively, noise filling might be used. The filling may be applied to zero-quantized portions of the spectrum and controlled by the encoder via corresponding noise filling parameters.
[0470] As to the encoding / decoding the block or sequence of quantized transform coefficients of a current block into / from the data stream 16, arithmetic coding, such as context-adaptive binary arithmetic coding, CABAC, may be used. The CABAC encoding / decoding may by performed frame wise. That is, in each channel, the sequence of blocks 640 may be partitioned into immediately consecutive blocks 640, which form frames. This partitioning may be equal among the channels so that, again, a frame denotes both a temporal portion within each channel individually, as well as a temporal portion of the multi-channel signal, i.e. a collection of temporally aligned frames. Within each frame, the sequence of blocks 640 are CABAC en / decoded with once initializing the contexts and resetting the internal CABAC state at the beginning and then updating the contexts’ probabilities during en / decoding the respective frame. That is, blocks 640 are CABAC decodable merely in units of frames. The context initialization might be done independent from previous frames, or depending on the contexts as manifesting itself at the end of, of during, the en / decoding a previous frame.
[0471] Some deblocking processing might be used to avoid blocking artifacts. If, alternatively, an overlapped transform is used, an overlap-add processing with re-transforms of immediately preceding / succeeding temporal blocks of the same coded channel might be used in order to completely reconstruct the current temporal block’s 640 residual signal 76.
[0472] Besides such transform-(residual)-coded blocks there might be temporal blocks 640 which, additionally or alternatively, are coded using, besides the block prediction by block predictor 62 / 86 - which could be called a primary prediction - a secondary sample-wise prediction of the residual samples in residual block 66 such as by predicting a current sample’s residual sample by means of already decoded values of preceding - in sample coding order - residual
[0473] FV -ACr - FH241023PEP-2025349100.DOCX samples in block 66 or 80, with then correcting same by means of a secondary-prediction- residual sample decoded from the data stream 16. The secondary-prediction-residual samples for such a block may coded into the data stream en block in a transform domain or samplewise in time domain.
[0474] Note that the afore-mentioned spectral shaping of the residual signal of a block 640 might be seen as a sample wise residual prediction, i.e. the case where filter coefficients are signaled for a block which define a temporal filter having a filter transfer function which approximates the spectral envelope of the residual signal within a current block 640. In sample wise residual prediction, the residual predictor on a current block 640 might either be chosen out of a fixed set of prediction modes, where an index to such a residual prediction mode is signaled in the bit-stream, or the residual prediction mode might be ‘signal adaptive’. In the latter case, prediction filter coefficients for the residual predictor are determined at the encoder by solving for example a linear equation, and are then quantized and transmitted to the decoder. At the decoder, the coefficients are inverse quantized and then the sample-wise prediction is conducted with these coefficients. The number of used coefficients may vary per block and might also be signaled in the bit-stream. Additionally, it might optionally (i.e. indicated by some information in the bit-stream) be supported to invoke collocated samples from a previous block for the sample wise residual prediction. Finally, the coefficients of the sample wise residual prediction might be coded predictively, i.e. be predicted from used coefficients of a previous block, where only the differences to the current coefficients are transmitted.
[0475] A final note shall be made with respect to the juxtaposition of frames, blocks 640, channels and channel groups and regarding decoding order. The description above already described the fact that the channels might be grouped into channel group with each channel group being coded independently from each other, meaning that the blocks 640 in a certain channel group are coded without dependencies from channels outside their channel group. The decoding order 60, thus, would traverse the channels channel-group individually, channel group by channel group. Within each channel group, the blocks 640 are traversed as described: all temporally aligned blocks 640 of all channels fist, then proceeding with the next blocks 640 and so forth. A frame may have a sequence of blocks of a channel group encoded thereinto along the mentioned decoding order order, such as n temporally consecutive blocks 640 for all channels of a channel group. IF the channel group had m channels, m*n block104 would, thus, be coded into the frame. As mentioned, there might be dependent frames, for which the CABAC contexts are adopted from the preceding frame of the same channel group, i.e. the one having encoded the immediately preceding block 640. For such dependent frames, not only CABAC contexts may be adopted from the preceding frame, but it may also be allowed
[0476] FV -ACr - FH241023PEP-2025349100.DCCX to allow for prediction from the preceding frame to the dependent frame. Prediction, and possibly also any coding dependencies, towards channels outside the channel group and, within the channel group, towards frames temporally preceding the mostly recently previously en / decoded independent frame would be disallowed. Thus, each tile shown in Fig. 6 by bold lines may represent a sequence of an independent frame flowed by zero, one or more dependent frames.
[0477] As mentioned before, Fig. 6 only represents a possible “framework” into which the previously described embodiments and the embodiments described subsequently may be built into. Many modifications may be performed with respect to Fig. 6, and some of these modifications might be mentioned in the subsequent description with respect to certain ones of the subsequently described embodiments, but these modifications shall then be treated as being also applicable with respect to other ones of the subsequently described embodiments.
[0478] The description is now resumed with respect to the announced subsequently described embodiments.
[0479] In this regard, it is to be noted that embodiments comprise encoders and respectively decoders according to the framework of Fig. 6, having any or all of the features, functionalities and details, individually or taken in combination, as discussed before and in particular as shown and discussed in the context of Fig. 1 , 2, 3, 4 and 5.
[0480] Hence, optionally, encoder 10 of Fig. 6 may correspond to the encoder shown in Fig. 1 or Fig. 4. That is, encoder 10 may, for example, comprise the respective features, functionalities and details of encoder 100 and / or 400 both individually or taken in combination. In particular, encoder 100 and / or 400 implemented in the framework shown in Fig. 6 may comprise, e.g. additionally, or in an according manner, some or all of the above discussed functionalities of encoder 10. The same applies accordingly to decoder 12 with respect to the decoder 200 of Fig. 2 and decoder 500 of Fig. 5.
[0481] As an example, embodiments comprise apparatuses, methods, computer programs, data streams, bitstreams and encoded representations for obtaining prediction values using state variable updates, e.g. prediction values as discussed in the context of Fig. 6 using a state variable update and / or initialization as discussed in the context of Fig. 1 to 5.
[0482] As an example, the encoded representations 102, 201 , 402, 501 may comprise the residual information 76 (and / or side information 36 and / or prediction parameters), which may be
[0483] FV -ACr - FH241023PEP-2025349100.DOCX decoded and respectively encoded as discussed in the context of Fig. 1 to 5. For example, encoding / decoding units 110, 210, 410, 510 may, for example, comprise the predictive coding functionalities as discussed in the context of Fig. 6.
[0484] For example, signal 14 may comprise, or may correspond to, the one or more symbol values to be encoded 101 , 401 , with encoders 100 and / or 400 and respectively decoders 200 and / or 500 optionally comprising the above-discussed channel transformation / permutation / temporal alignment functionalities.
[0485] Implementation alternatives:
[0486] Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most important method steps may be executed by such an apparatus.
[0487] Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
[0488] Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
[0489] Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine-readable carrier.
[0490] FV -ACr - FH241023PEP-2025349100.DOCX Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine-readable carrier.
[0491] In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
[0492] A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and / or non-transitionary.
[0493] A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
[0494] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
[0495] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0496] A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
[0497] In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware apparatus.
[0498] FV -ACr - FH241023PEP-2025349100.DGCX The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0499] The apparatus described herein, or any components of the apparatus described herein, may be implemented at least partially in hardware and / or in software.
[0500] The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0501] The methods described herein, or any components of the apparatus described herein, may be performed at least partially by hardware and / or by software.
[0502] The above-described embodiments are merely illustrative for the principles of the present invention. It is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending patent claims and not by the specific details presented by way of description and explanation of the embodiments herein.
[0503] FV -ACr - FH241023PEP-2025349100.DOCX
Claims
Claims1. An arithmetic encoder (10, 100) for encoding a plurality of symbols having symbol values, wherein the arithmetic encoder is configured to derive an interval size information (121) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (132), which represent statistics of a plurality of previously encoded symbol values, wherein the arithmetic encoder is configured to update the one or more state variable values (132) in dependence on an encoded symbol, in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol; wherein the arithmetic encoder is configured to use a first, comparatively faster adaptation rate (150a) for an update of one or more of the state variable values for a predetermined number of adaptation steps; and wherein the arithmetic encoder is configured to use a second, comparatively slower adaptation rate (150b) for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed.
2. The arithmetic encoder (12, 100) according to claim 1 , wherein the arithmetic encoder is configured to derive the interval size information (121) for the arithmetic encoding of one or more symbol values to be encoded on the basis of a first state variable value (3333a) comprising, in a normal mode of operation, a first adaptation time constant (3350a), and on the basis of a second state variable value (3333b) comprising, in a normal mode of operation, a second adaptation time constant (3350b), wherein the second adaptation time constant is longer than the first adaptation time constant, wherein the arithmetic encoder is configured to use the first, comparatively faster adaptation rate for an update of the first state variable values for a predetermined number of adaptation steps, and wherein the arithmetic encoder is configured to determine the second state variable value to be a scaled version of the first state variable value for the predetermined number of adaptation steps.FV -ACr - FH241023PEP-2025349100.DOCX3. The arithmetic encoder (12, 100) according to claim 1 or 2, wherein the arithmetic encoder is configured to independently update the first state variable value (3333a) and the second state variable value (3333b) when the predetermined number of adaptation steps is completed.
4. The arithmetic encoder (12, 100) according to any of claims 1 to 3, wherein the arithmetic encoder is configured to derive the second state variable (3333b) from the first state variable value (3333a) using a bit shift operation for the predetermined number of adaptation steps.
5. The arithmetic encoder (12, 100) according to any of claims 1 to 4, wherein the arithmetic encoder is configured to initialize the first state variable value (3333a) and the second state variable value (3333b) to take respective initial values (3341 a, b), wherein the arithmetic encoder is configured to update the first state variable value using the first, comparatively faster adaptation rate (3350a) in dependence on respective encoded symbols for a predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, wherein the arithmetic encoder is configured to obtain the second state variable value as a scaled version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, wherein the arithmetic encoder is configured to update the first state variable value using the second, comparatively slower adaptation rate (3350b) when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; and wherein the arithmetic encoder is configured to update the second state variable value using a third adaptation rate (3350c), which is slower than the first adaptation rate and the second adaptation rate, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
6. The arithmetic encoder (12, 100) according to any of claims 1 to 5, wherein the arithmetic encoder is configured to evaluate a lookup table in order to update the first state variable value (3333a),FV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic encoder is configured to select an entry of the lookup table in dependence on a current value of the first state variable value and in dependence on a respective encoded symbol, wherein the arithmetic encoder is configured to increase or decrease the first state variable value in dependence on the selected entry of the lookup table and in dependence on the respective encoded symbol, wherein the selected entry of the lookup table, scaled according to a scaling factor, determines a magnitude of the increase or decrease of the first state variable value, and wherein the respective encoded symbol determines whether the first state variable value is increased or decreased, wherein the arithmetic encoder is configured to use a comparatively larger scaling factor for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, and wherein the arithmetic encoder is configured to use a comparatively smaller scaling factor when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; wherein the arithmetic encoder is configured to obtain the second state variable value (3333b) as a scaled version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values; and wherein the arithmetic encoder is configured to select another entry of the lookup table in dependence on a current value of the second state variable value and in dependence on the respective encoded symbol, and to increase or decrease the second state variable value in dependence on the selected another entry of the lookup table and in dependence on the respective encoded symbol, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
7. The arithmetic encoder (12, 100) according to any of claims 1 to 6, wherein the arithmetic encoder is configured to determine a combined state variable value on the basis of the first state variable value (3333a) and the second state variable value (3333b) according towherein the arithmetic encoder is configured to determine a table index value tabldx according to tabldx = abs(s » (bmax— 5))FV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic encoder is configured to determine a subintervall width RLPS for the less probable symbol according toRLPS = rlpsTable2D[taWdx][(7? - 256) » 5], wherein R is a coding interval width; wherein the arithmetic encoder is configured to arithmetically encode a symbol to be encoded using the subintervall width RLPS for the less probable symbol, wherein the arithmetic encoder is configured to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ((sign ■ s0) » (b0- 5))]for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, and to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp add = (addS( = S( + sign ■ add when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein bin designates a respective encoded symbol, wherein b1>b0>=7; wherein w1>w0>1.
8. An arithmetic encoder (12, 400) for encoding a plurality of symbols having symbol values, wherein the arithmetic encoder is configured to derive an interval size information (421) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (432), which represent statistics of a plurality of previously encoded symbol values,FV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic encoder is configured to update the one or more state variable values in dependence on an encoded symbol, in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol; wherein the arithmetic encoder is configured to determine one or more initialization values (3341 a, b) for the one or more state variable values in dependence on a quantization parameter (450) which determines a quantization step size for a quantization of one or more values to be encoded using the symbols.
9. The arithmetic encoder (12, 400) according to claim 8, wherein the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values using a substantially linear mapping, which maps the quantization parameter (450) onto an intermediate state value.
10. The arithmetic encoder (12, 400) according to claim 8 or 9, wherein the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values using one or more clipped linear mappings, wherein a respective one of the one or more clipped linear mappings linearly maps the intermediate state value onto a respective initialization value of a respective state variable value while limiting a range of values of the initialization value to a predetermined range.11 . The arithmetic encoder (12, 400) according to any of claims 8 to 10, wherein the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values using a substantially linear mapping, which maps the quantization parameter (450) onto a respective initialization value of a respective state variable value.
12. The arithmetic encoder (12, 400) according to any of claims 8 to 11, wherein the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values using one or more clipped linear mappings, wherein a respective one of the one or more clipped linear mappings linearly maps the quantization parameter (450) onto a respective initialization value of a respective state variable value while limiting a range of values of the initialization value to a predetermined range.
13. The arithmetic encoder (12, 400) according to any of claims 8 to 12,FV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic encoder is configured to obtain a first support value; wherein the arithmetic encoder is configured to obtain a second support value; wherein the arithmetic encoder is configured to obtain a quantization parameter mapping start value describing a value of the quantization parameter which is mapped onto the first support value of the linear mapping; wherein the arithmetic encoder is configured to obtain a quantization parameter mapping range value describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value of the linear mapping.
14. The arithmetic encoder (12, 400) according to any of claims 8 to 13, wherein the arithmetic encoder is configured to map the quantization parameter (450) onto the one or more initialization values using the first support value, the second support value, the quantization parameter mapping start value and the quantization parameter range value.
15. The arithmetic encoder (12, 400) according to any of claims 8 to 14, wherein the arithmetic encoder is configured to determine a slope value in dependence on a difference between the second support value and the first support value; wherein the arithmetic encoder is configured to determine a quantization parameter deviation value using a difference between the quantization parameter value and the quantization parameter mapping start value; and wherein the arithmetic encoder is configured to determine the intermediate state value using a combination of a product of the slope value and of the quantization parameter deviation value with a scaled version of the first support value.
16. The arithmetic encoder (12, 400) according to any of claims 8 to 15, wherein the arithmetic encoder is configured to obtain a first support value, a second support value, a quantization parameter mapping start value describing a value of the quantization parameter which is mapped onto the first support value using a linear mapping, and a quantization parameter mapping range value describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value using the linear mapping on the basis of an initialization value.FV -ACr - FH241023PEP-2025349100.DOCX17. The arithmetic encoder (12, 400) according to any of claims 8 to 16, wherein the arithmetic encoder is configured to derive the quantization parameter mapping start value on the basis of a first block of two bits of initialization value, wherein the arithmetic encoder is configured to derive the quantization parameter mapping range value on the basis of a second block of two bits of initialization value, wherein the arithmetic encoder is configured to derive the first support value on the basis of a third block of four bits of initialization value, wherein the arithmetic encoder is configured to derive the second support value on the basis of a fourth block of four bits of initialization value.
18. The arithmetic encoder (12, 400) according to any of claims 8 to 17, wherein the arithmetic encoder is configured to derive the quantization parameter mapping start value qpPosProbO on the basis of a block qpPosBrobOBits of two bits according to qpPosProbO = (2 « qpPosProbOBits) - 2.
19. The arithmetic encoder (12, 400) according to any of claims 8 to 18, wherein the arithmetic encoder is configured to derive the quantization parameter mapping range value log2qpRange on the basis of a block log2qpRangeBits of two bits according to log2qpRange = log2qpRangeBits + 3.
20. The arithmetic encoder (12, 400) according to any of claims 8 to 19, wherein the arithmetic encoder is configured to derive the first support value probStart on the basis of a block probStartBits of four bits, according to probStart = probStartBits * 8, and wherein the arithmetic encoder is configured to derive the second support value probEnd on the basis of a block probEndBits of four bits, according to probEnd = probEndBits * 8.21 . The arithmetic encoder (12, 400) according to any of claims 8 to 20, wherein the arithmetic encoder is configured to obtain a first block of two bits representing the quantization parameter mapping start value, a second block of two bits representing the quantization parameter mapping range value, a third block of four bits representing the first support value and a fourthFV -ACr - FH241023PEP-2025349100.DOCXblock of four bits representing the first support value on the basis of the initialization value initValue according to qpPosProbOBits = initValue & 3 log2qpRangeBits = (initValue » 2) & 3 probStartBits = (initValue » 4) & 15 probEndBits = (initValue » 8) & 15.
22. The arithmetic encoder (12, 400) according to any of claims 8 to 21, wherein the arithmetic encoder is configured to obtain one or more initialization values of the one or more state variable values using one or more linear mappings, respectively followed by a clipping operation.
23. The arithmetic encoder (12, 400) according to any of claims 8 to 22, wherein the arithmetic encoder is configured to obtain an initialization value (3341a) of a first state variable value (3333a) using a linear mapping, followed by clipping operation, or wherein the arithmetic encoder is configured to obtain an initialization value (3341a) of a first state variable value (3333a) using a sequence of linear mappings, followed by clipping operation; and wherein the arithmetic encoder (12, 400) is configured to obtain an initialization value (3341b) of a second state variable value (3333b) using a linear mapping, followed by clipping operation, or wherein the arithmetic encoder is configured to obtain an initialization value (3341 b) of a second state variable value (3333b) using a sequence of linear mappings, followed by clipping operation.
24. The arithmetic encoder (12, 400) according to any of claims 8 to 23, wherein the arithmetic encoder is configured to obtain an intermediate state value, inistate, for a determination of an initialization value of a state variable si in dependence on a quantization parameter qp according to slopeMul = probEnd - probStart add = (1 « log2qpRange) » 1 currQP = qp - qpPosProbO inistate_num = currQP * slopeMul + (probStart « log2qpRange) inistate = (inistate_num + add ) » log2qpRangeFV -ACr - FH241023PEP-2025349100.DQCXwherein probStart is a first support value, wherein probEnd is a second support value, wherein log2qpRange is a quantization parameter mapping range value, wherein qpPosProbO is a quantization parameter mapping start value.
25. The arithmetic encoder (12, 400) according to any of claims 8 to 24, wherein the arithmetic encoder is configured to obtain an initialization value of a state variable si according to initState = inistate « (b; - 7) clip = 1 « (bi - 5) center = 1 « (^ - 1) si = min( max( initState, clip ), (1«b;) - clip ) - center wherein bi is a number of bits used for representing the state variable value si.
26. The arithmetic encoder (12, 400) according to any of claims 8 to 25, wherein the arithmetic encoder is configured to encode a plurality of channel signals by arithmetically encoding one or more respective symbol values representing sample values of the respective channel signals; wherein the arithmetic encoder is configured to use a plurality of channel context models per channel signal, wherein separate sets of context models are used for the encoding of different channel signals; wherein the arithmetic encoder is configured to initialize state variables of channel context models associated with an encoding of different channel signals using identical initialization values.
27. The arithmetic encoder (12, 400) according to any of claims 8 to 26, wherein the arithmetic encoder is configured to select a common set of initialization values for initializing state variables for an arithmetic encoding of a plurality of channel signals, and wherein the arithmetic encoder is configured to include a signaling information, defining the selected common set of initialization values, into the encoded representation (402).FV -ACr - FH241023PEP-2025349100.DOCX28. The arithmetic encoder (12, 400) according to any of claims 8 to 27, wherein the arithmetic encoder is configured to decide whether to use a same set of initialization values for initializing state variables of channel context models associated with the encoding of different channel signals, or whether to use separate sets of initialization values for initializing state variables of channel context models associated with the encoding of different channel signals, and wherein the arithmetic encoder is configured to include a signaling information indicating whether to use a same set of initialization values for initializing state variables of channel context models, or whether to use separate sets of initialization values for initializing state variables of channel context models into an encoded representation (402).
29. The arithmetic encoder (12, 400) according to any of claims 8 to 28, wherein the arithmetic encoder is configured to include, into an encoded representation (402), a signaling information indicating whether a further signaling information, indicating on a per channel basis which initialization value or set of initialization value, out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used, is included into the encoded representation.
30. The arithmetic encoder (12, 400) according to any of claims 8 to 29, wherein the arithmetic encoder is configured to selectively include, into an encoded representation (402), a perchannel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used.
31. The arithmetic encoder (12, 400) according to any of claims 8 to 30, wherein the perchannel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used, is a one bit information.
32. The arithmetic encoder (12, 400) according to any of claims 8 to 31, wherein the arithmetic encoder is configured to update a first state variable value s0and a second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp add = addS( = S( + sign ■ addFV -ACr - FH241023PEP-2025349100.DOCXwherein bin designates a respective encoded symbol, wherein b1 >b0>=7; wherein w1>w0>1 ,33. An arithmetic decoder (10, 200) for decoding a plurality of symbols having symbol values, wherein the arithmetic decoder is configured to derive an interval size information (221) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (232), which represent statistics of a plurality of previously decoded symbol values, wherein the arithmetic decoder is configured to update the one or more state variable values in dependence on a decoded symbol, in order to obtain one or more updated sate variable values for a decoding of a subsequent symbol; wherein the arithmetic decoder is configured to use a first, comparatively faster adaptation rate (250a) for an update of one or more of the state variable values for a predetermined number of adaptation steps; and wherein the arithmetic decoder is configured to use a second, comparatively slower adaptation rate (250b) for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed.
34. The arithmetic decoder (10, 200) according to claim 33, wherein the arithmetic decoder is configured to derive the interval size information (221) for the arithmetic decoding of one or more symbol values to be decoded on the basis of a first state variable value (3333a) comprising, in a normal mode of operation, a first adaptation time constant (3350a), and on the basis of a second state variable value (3333b) comprising, in a normal mode of operation, a second adaptation time constant (3350b), wherein the second adaptation time constant is longer than the first adaptation time constant, wherein the arithmetic decoder is configured to use the first, comparatively faster adaptation rate for an update of the first state variable values for a predetermined number of adaptation steps, andFV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic decoder is configured to determine the second state variable value to be a scaled version of the first state variable value for the predetermined number of adaptation steps.
35. The arithmetic decoder (10, 200) according to claim 33 or 34, wherein the arithmetic decoder is configured to independently update the first state variable value (3333a) and the second state variable value (3333b) when the predetermined number of adaptation steps is completed.
36. The arithmetic decoder (10, 200) according to any of claims 33 to 35, wherein the arithmetic decoder is configured to derive the second state variable (3333b) from the first state variable value (3333a) using a bit shift operation for the predetermined number of adaptation steps.
37. The arithmetic decoder (10, 200) according to any of claims 33 to 36, wherein the arithmetic decoder is configured to initialize the first state variable value (3333a) and the second state variable value (3333b) to take respective initial values (3341 a, b), wherein the arithmetic decoder is configured to update the first state variable value (3333a) using the first, comparatively faster adaptation rate (3350a) in dependence on respective decoded symbols for a predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, wherein the arithmetic decoder is configured to obtain the second state variable value (3333b) as a scaled version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, wherein the arithmetic decoder is configured to update the first state variable value using the second, comparatively slower adaptation rate (3350b) when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; and wherein the arithmetic decoder is configured to update the second state variable value using a third adaptation rate (3350c), which is slower than the first adaptation rate and the second adaptation rate, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.FV -ACr - FH241023PEP-2025349100.DOCX38. The arithmetic decoder (10, 200) according to any of claims 33 to 37, wherein the arithmetic decoder is configured to evaluate a lookup table in order to update the first state variable value (3333a), wherein the arithmetic decoder is configured to select an entry of the lookup table in dependence on a current value of the first state variable value and in dependence on a respective decoded symbol, wherein the arithmetic decoder is configured to increase or decrease the first state variable value in dependence on the selected entry of the lookup table and in dependence on the respective decoded symbol, wherein the selected entry of the lookup table, scaled according to a scaling factor, determines a magnitude of the increase or decrease of the first state variable value, and wherein the respective decoded symbol determines whether the first state variable value is increased or decreased, wherein the arithmetic decoder is configured to use a comparatively larger scaling factor for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, and wherein the arithmetic decoder is configured to use a comparatively smaller scaling factor when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed; wherein the arithmetic decoder is configured to obtain the second state variable value (3333b) as a scaled version of the first state variable value for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values; and wherein the arithmetic decoder is configured to select another entry of the lookup table in dependence on a current value of the second state variable value and in dependence on the respective decoded symbol, and to increase or decrease the second state variable value in dependence on the selected another entry of the lookup table and in dependence on the respective decoded symbol, when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed.
39. The arithmetic decoder (10, 200) according to any of claims 33 to 38, wherein the arithmetic decoder is configured to determine a combined state variable value on the basis of the first state variable value (3333a) and the second state variable value (3333b) according toFV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic decoder is configured to determine a table index value tabldx according to tabldx = abs(s » (bmax— 5)) wherein the arithmetic decoder is configured to determine a subintervall width RLPS for the less probable symbol according toRLPS = rlpsTable2D[taWdx][(7? - 256) » 5], wherein R is a coding interval width; wherein the arithmetic decoder is configured to arithmetically decode a symbol to be decoded using the subintervall width RLPS for the less probable symbol, wherein the arithmetic decoder is configured to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp[16 + ((sign ■ s0) » (b0- 5))]for the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values, and to update the first state variable value s0and the second state variable value Si according to sign = 2 ■ bin — 1 add = lookupTableHyp add = (addS( = S( + sign ■ add when the predetermined number of adaptation steps following the initialization of the state variable values to the respective initial values is completed, wherein bin designates a respective decoded symbol, wherein b1 >b0>=7; wherein w1>w0>1.
40. An arithmetic decoder (10, 500) for decoding a plurality of symbols having symbol values,FV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic decoder is configured to derive an interval size information (521) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (532), which represent statistics of a plurality of previously decoded symbol values, wherein the arithmetic decoder is configured to update the one or more state variable values in dependence on a decoded symbol, in order to obtain one or more updated sate variable values for an decoding of a subsequent symbol; wherein the arithmetic decoder is configured to determine one or more initialization values (3341 a, b) for the one or more state variable values in dependence on a quantization parameter (550) which determines a quantization step size for a quantization of one or more values to be decoded using the symbols.
41. The arithmetic decoder (10, 500) according to claim 40, wherein the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values using a substantially linear mapping, which maps the quantization parameter (550) onto an intermediate state value.
42. The arithmetic decoder (10, 500) according to claim 40 or 41, wherein the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values using one or more clipped linear mappings, wherein a respective one of the one or more clipped linear mappings linearly maps the intermediate state value onto a respective initialization value of a respective state variable value while limiting a range of values of the initialization value to a predetermined range.
43. The arithmetic decoder (10, 500) according to any of claims 40 to 42, wherein the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values using a substantially linear mapping, which maps the quantization parameter (550) onto a respective initialization value of a respective state variable value.
44. The arithmetic decoder (10, 500) according to any of claims 40 to 43, wherein the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values using one or more clipped linear mappings,FV -ACr - FH241023PEP-2025349100.DOCXwherein a respective one of the one or more clipped linear mappings linearly maps the quantization parameter (550) onto a respective initialization value of a respective state variable value while limiting a range of values of the initialization value to a predetermined range.
45. The arithmetic decoder (10, 500) according to any of claims 40 to 44, wherein the arithmetic decoder is configured to obtain a first support value; wherein the arithmetic decoder is configured to obtain a second support value; wherein the arithmetic decoder is configured to obtain a quantization parameter mapping start value describing a value of the quantization parameter which is mapped onto the first support value of the linear mapping; wherein the arithmetic decoder is configured to obtain a quantization parameter mapping range value describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter which is mapped onto the second support value of the linear mapping.
46. The arithmetic decoder (10, 500) according to any of claims 40 to 45, wherein the arithmetic decoder is configured to map the quantization parameter (550) onto the one or more initialization values using the first support value, the second support value, the quantization parameter mapping start value and the quantization parameter range value.
47. The arithmetic decoder (10, 500) according to any of claims 40 to 46, wherein the arithmetic decoder is configured to determine a slope value in dependence on a difference between the second support value and the first support value; wherein the arithmetic decoder is configured to determine a quantization parameter deviation value using a difference between the quantization parameter value (550) and the quantization parameter mapping start value; and wherein the arithmetic decoder is configured to determine the intermediate state value using a combination of a product of the slope value and of the quantization parameter deviation value with a scaled version of the first support value.
48. The arithmetic decoder (10, 500) according to any of claims 40 to 47, wherein the arithmetic decoder is configured to obtain a first support value,FV -ACr - FH241023PEP-2025349100.DOCXa second support value, a quantization parameter mapping start value describing a value of the quantization parameter (550) which is mapped onto the first support value using a linear mapping, and a quantization parameter mapping range value describing, when taken in combination with the quantization parameter mapping start value, a value of the quantization parameter (550) which is mapped onto the second support value using the linear mapping on the basis of an initialization value.
49. The arithmetic decoder (10, 500) according to any of claims 40 to 48, wherein the arithmetic decoder is configured to derive the quantization parameter mapping start value on the basis of a first block of two bits of initialization value, wherein the arithmetic decoder is configured to derive the quantization parameter mapping range value on the basis of a second block of two bits of initialization value, wherein the arithmetic decoder is configured to derive the first support value on the basis of a third block of four bits of initialization value, wherein the arithmetic decoder is configured to derive the second support value on the basis of a fourth block of four bits of initialization value.
50. The arithmetic decoder (10, 500) according to any of claims 40 to 49, wherein the arithmetic decoder is configured to derive the quantization parameter mapping start value qpPosProbO on the basis of a block qpPosBrobOBits of two bits according to qpPosProbO = (2 « qpPosProbOBits) - 2.51 . The arithmetic decoder (10, 500) according to any of claims 40 to 50, wherein the arithmetic decoder is configured to derive the quantization parameter mapping range value log2qpRange on the basis of a block log2qpRangeBits of two bits according to log2qpRange = log2qpRangeBits + 3.
52. The arithmetic decoder (10, 500) according to any of claims 40 to 51, wherein the arithmetic decoder is configured to derive the first support value probStart on the basis of a block probStartBits of four bits, according to probStart = probStartBits * 8, andFV -ACr - FH241023PEP-2025349100.DOCXwherein the arithmetic decoder is configured to derive the second support value probEnd on the basis of a block probEndBits of four bits, according to probEnd = probEndBits * 8.
53. The arithmetic decoder (10, 500) according to any of claims 40 to 52, wherein the arithmetic decoder is configured to obtain a first block of two bits representing the quantization parameter mapping start value, a second block of two bits representing the quantization parameter mapping range value, a third block of four bits representing the first support value and a fourth block of four bits representing the first support value on the basis of the initialization value initValue according to qpPosProbOBits = initValue & 3 log2qpRangeBits = (initValue » 2) & 3 probStartBits = (initValue » 4) & 15 probEndBits = (initValue » 8) & 15.
54. The arithmetic decoder (10, 500) according to any of claims 40 to 53, wherein the arithmetic decoder is configured to obtain one or more initialization values of the one or more state variable values using one or more linear mappings, respectively followed by a clipping operation.
55. The arithmetic decoder (10, 500) according to any of claims 40 to 54, wherein the arithmetic decoder is configured to obtain an initialization value (3341a) of a first state variable value (3333a) using a linear mapping, followed by clipping operation, or wherein the arithmetic decoder is configured to obtain an initialization value (3341a) of a first state variable value (3333a) using a sequence of linear mappings, followed by clipping operation; and wherein the arithmetic decoder is configured to obtain an initialization value (3341 b) of a second state variable value (3333b) using a linear mapping, followed by clipping operation, or wherein the arithmetic decoder is configured to obtain an initialization value (3341 b) of a second state variable value (3333a) using a sequence of linear mappings, followed by clipping operation.
56. The arithmetic decoder (10, 500) according to any of claims 40 to 55, wherein the arithmetic decoder is configured to obtain an intermediate state value inistate for a determination of anFV -ACr - FH241023PEP-2025349100.DOCXinitialization value of a state variable Si in dependence on a quantization parameter qp (550) according to slopeMul = probEnd - probStart add = (1 « log2qpRange) » 1 currQP = qp - qpPosProbO inistate_num = currQP * slopeMul + (probStart « log2qpRange) inistate = (inistate_num + add ) » log2qpRange wherein probStart is a first support value, wherein probEnd is a second support value, wherein log2qpRange is a quantization parameter mapping range value, wherein qpPosProbO is a quantization parameter mapping start value.
57. The arithmetic decoder (10, 500) according to any of claims 40 to 56, wherein the arithmetic decoder is configured to obtain an initialization value of a state variable si according to initState = inistate « (b; - 7) clip = 1 « (bi - 5) center = 1 « (^ - 1) si = min( max( initState, clip ), (1«b;) - clip ) - center wherein bi is a number of bits used for representing the state variable value si.
58. The arithmetic decoder (10, 500) according to any of claims 40 to 57, wherein the arithmetic decoder is configured to decode a plurality of channel signals by arithmetically decoding one or more respective symbol values representing sample values of the respective channel signals; wherein the arithmetic decoder is configured to use a plurality of channel context models per channel signal, wherein separate sets of context models are used for the decoding of different channel signals; wherein the arithmetic decoder is configured to initialize state variables of channel context models associated with a decoding of different channel signals using identical initialization values.
59. The arithmetic decoder (10, 500) according to any of claims 40 to 58,FV -ACr - FH241023PEP-2025349100.DQCXwherein the arithmetic decoder is configured to obtain a signaling information from an encoded representation (501); and wherein the arithmetic decoder is configured to select a common set of initialization values as a selected common set of initialization values, for initializing state variables for an arithmetic decoding of a plurality of channel signals, using the signaling information.
60. The arithmetic decoder according to any of claims 40 to 59, wherein the arithmetic decoder is configured to obtain a signaling information, indicating whether to use a same set of initialization values for initializing state variables of channel context models, or whether to use separate sets of initialization values for initializing state variables of channel context models, from an encoded representation (501); and wherein the arithmetic decoder is configured to decide whether to use a same set of initialization values for initializing state variables of channel context models associated with the decoding of different channel signals, or whether to use separate sets of initialization values for initializing state variables of channel context models associated with the decoding of different channel signals, using the signaling information.61 . The arithmetic decoder (10, 500) according to any of claims 40 to 60, wherein the arithmetic decoder is configured to obtain, from an encoded representation (501), a signaling information indicating whether a further signaling information, indicating on a per channel basis which initialization value or set of initialization value, out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used, is included into the encoded representation.
62. The arithmetic decoder (10, 500) according to any of claims 40 to 61, wherein the arithmetic decoder is configured to selectively obtain, from an encoded representation (501), a perchannel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used.
63. The arithmetic decoder (10, 500) according to any of claims 40 to 62, wherein the perchannel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used, is a one bit information.FV -ACr - FH241023PEP-2025349100.DOCX64. The arithmetic decoder (10, 500) according to any of claims 40 to 63, wherein the arithmetic decoder is configured to update a first state variable value s0and a second state variable value ST according to sign = 2 ■ bin — 1 add = lookupTableHyp add = addS( = S( + sign ■ add wherein bin designates a respective decoded symbol, wherein b1 >b0>=7; wherein w1>w0>1.
65. An arithmetic encoding method for encoding a plurality of symbols having symbol values, the method comprising: deriving an interval size information (121) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (232), which represent statistics of a plurality of previously encoded symbol values, updating the one or more state variable values in dependence on an encoded symbol, in order to obtain one or more updated state variable values for an encoding of a subsequent symbol; using a first, comparatively faster adaptation rate (150a) for an update of one or more of the state variable values for a predetermined number of adaptation steps; and using a second, comparatively slower adaptation rate (150b) for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed.
66. An arithmetic encoding method for encoding a plurality of symbols having symbol values, the method comprising: deriving an interval size information (421) for an arithmetic encoding of one or more symbol values to be encoded on the basis of one or more state variable values (432), which represent statistics of a plurality of previously encoded symbol values, updating the one or more state variable values in dependence on an encoded symbol, in order to obtain one or more updated sate variable values for an encoding of a subsequent symbol;FV -ACr - FH241023PEP-2025349100.DOCXdetermining one or more initialization values (3341a, 3341b) for the one or more state variable values in dependence on a quantization parameter which determines a quantization step size for a quantization of one or more values to be encoded using the symbols.
67. An arithmetic decoding method for decoding a plurality of symbols having symbol values, the method comprising: deriving an interval size information (221) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (232), which represent statistics of a plurality of previously decoded symbol values, updating the one or more state variable values in dependence on a decoded symbol, in order to obtain one or more updated state variable values for a decoding of a subsequent symbol; using a first, comparatively faster adaptation rate (250a) for an update of one or more of the state variable values for a predetermined number of adaptation steps; and using a second, comparatively slower adaptation rate (250b) for the update of one or more of the state variable values when the predetermined number of adaptation steps is completed.
68. An arithmetic decoding method for decoding a plurality of symbols having symbol values, the method comprising: deriving an interval size information (521) for an arithmetic decoding of one or more symbol values to be decoded on the basis of one or more state variable values (532), which represent statistics of a plurality of previously decoded symbol values, updating the one or more state variable values in dependence on a decoded symbol, in order to obtain one or more updated sate variable values for a decoding of a subsequent symbol; determining one or more initialization values (3341a, b) for the one or more state variable values in dependence on a quantization parameter which determines a quantization step size for a quantization of one or more values to be decoded using the symbols.
69. A computer program for performing the method according to any of claims 65, 66, 67 or 68 when the computer program runs on a computer.FV -ACr - FH241023PEP-2025349100.DOCX70. An encoded representation (102, 201 , 402, 501), comprising: an arithmetically encoded representation of a plurality of symbol values representing a plurality of channel signals; and a signaling information indicating which common set of initialization values, out of a plurality of candidate sets of initialization values, should be used for initializing state variables for an arithmetic decoding of a plurality of channel signals.
71. An encoded representation (102, 201 , 402, 501), comprising: an arithmetically encoded representation of a plurality of symbol values representing a plurality of channel signals; and a signaling information indicating whether to use a same set of initialization values for initializing state variables of channel context models, or whether to use separate sets of initialization values for initializing state variables of channel context models.
72. An encoded representation (102, 201 , 402, 501), comprising: an arithmetically encoded representation of a plurality of symbol values representing a plurality of channel signals; and a signaling information indicating whether a further signaling information, indicating on a per channel basis which initialization value or set of initialization value, out of a plurality of candidate initialization values or out of a plurality of candidate sets of initialization values, should be used, is included in the encoded representation.
73. An encoded representation (102, 201 , 402, 501), comprising: an arithmetically encoded representation of a plurality of symbol values representing a plurality of channel signals; and a per-channel signaling information, indicating on a per channel basis which initialization value out of a plurality of candidate initialization values or which set of initialization values out of a plurality of candidate sets of initialization values should be used.FV -ACr - FH241023PEP-2025349100.DOCX74. A data stream (16) having encoded an encoded representation (102, 201, 402, 501) using the method according to claim 65 or 66.FV -ACr - FH241023PEP-2025349100.DOCX
Citation Information
Patent Citations
Arithmetic encoders, arithmetic decoders, video encoder, video decoder, methods for encoding, methods for decoding and computer program
WO2020008075A1
Arithmetic encoders, arithmetic decoders, video encoder, video decoder, methods for encoding, methods for decoding and computer program
WO2025219427A1