Decoder, encoder, and corresponding methods for decoding digital time-varying signals

KR1020260138562APending Publication Date: 2026-09-18프라운호퍼게젤샤프트쭈르푀르데룽데어안겐반텐포르슝에베
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020267026446
Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-12
Filing Date
2025-01-13
Publication Date
2026-09-18

Smart Images

  • Figure PCT00002_ABST
    Figure PCT00002_ABST
Patent Text Reader

Abstract

A decoder for decoding a digital time-varying signal from a data stream is presented. The decoder is configured to decode a digital time-varying signal from a data stream in time-block units by sequentially determining a pre-set sample value for sample positions of each time block entropy-coded in sample units, decoding a residual sample value for the current sample position of each time block entropy-coded in sample units from the data stream, and correcting a predicted sample value for the current sample position using the residual sample value. Decoding a residual sample value for the current sample position of each time block entropy-coded in sample units includes entropy-decoding a first part of the binarization of the residual sample value in a binary context-adaptive manner and decoding the remainder of the binarization from the data stream. The decoder is configured to derive a context for decoding at least one bin of the first part using a pre-set sample value of one or more previous sample positions of each time block entropy-coded in sample units.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] An embodiment according to the present invention relates to a decoder and an encoder for decoding a digital time-varying signal. Background Technology

[0002] Digital time-varying signals are commonly used to represent media and measurement data, such as audio signals, biomedical signals, or seismic measurements. As the generation, transmission, and storage of signals increase, there is a demand for the compression of these digital time-varying signals.

[0003] This is achieved by the subject matter of the independent claim of the present application.

[0004] Further embodiments according to the present invention are defined by the subject matter of the dependent claims of the present application.

[0005] According to a first aspect of the present invention, a decoder for decoding a digital time-varying signal from a data stream is provided. The above decoder is configured to decode the digital time-varying signal from the data stream in time-block units by decoding each time block entropy-coded in sample units among the time blocks of the digital time-varying signal, by decoding the residual sample value for the current sample position of each time block entropy-coded in sample units from the data stream and correcting the predicted sample value for the current sample position using the residual sample value to sequentially determine a preset sample value for the sample position of each time block entropy-coded in sample units, wherein decoding the residual sample value for the current sample position of each time block entropy-coded in sample units includes entropy-decoding a first part of the binarization of the residual sample value in a binary context-adaptive manner and decoding the remainder part of the binarization from the data stream, and the decoder is configured to derive a context for decoding at least one bin of the first part using the preset sample value of one or more previous sample positions of each time block entropy-coded in sample units.

[0006] Digital time-varying signals generally have a structure with redundancy over time (and / or redundancy between channels), and this redundancy can be reduced by using predicted sample values ​​that are subsequently corrected using the residual sample values. It has been recognized that these residual sample values ​​often have a value distribution with a high frequency of low values. This value distribution can be benefited from by providing the residual sample values ​​in the form of a first and second part of binarization. The first part of the binarization can be coded to adapt to frequently occurring low values. Since the time blocks are entropy-coded on a sample-by-sample basis, previously coded samples may be available for decoding the currently coded sample. Since these previously coded samples are more likely to have similar values, they serve as appropriate indicators for context selection. However, particularly advantageous is the derivation of context for the first part of the binarization, which can be used to code the general magnitude of the pre-set sample values ​​(e.g., the second part can be used to define the final value more accurately). By deriving a context for decoding at least one bin of the first part above, utilizing the fact that sample-unit coding enables access to previously coded samples of the same block, a context that may significantly represent the value of the value to be decoded can be obtained.

[0007] According to a second aspect, a decoder for decoding a digital time-varying signal from a data stream is provided. The decoder is configured to decode the digital time-varying signal from the data stream in units of time blocks by decoding each time block that is entropy-coded in units of units, by deriving from the data stream a predetermined rank indicating that among the transform coefficients of the time blocks entropy-coded in units of units, the transform coefficients having a rank greater than a predetermined rank according to a scan order defined between the transform coefficients, sequentially decoding the transform coefficients having a rank smaller than the predetermined rank in reverse order of the scan order, performing re-conversion on the transform coefficients of each time block entropy-coded in units of units to obtain a time domain residual signal, and restoring each time block entropy-coded in units of units entropy-coded in units by units entropy-coding in units by correcting a prediction signal for each time block entropy-coded in units of units entropy-coding in units using the time domain residual signal.The decoder is configured to derive the preset rank from the data stream by decoding a rough rank index that indexes one of a plurality of rough rank positions according to the scan order and by decoding a detailed rank offset that points to the preset rank relative to the one rough rank position, and / or 2) the decoder is configured to decode the current decoding transform coefficient of each time block entropy-coded in the coefficient unit by decoding the first part of the binarization of the transform coefficient currently being decoded in a binary context adaptive manner and by decoding the remainder part of the binarization from the data stream, thereby decoding the transform coefficient currently being decoded in the coefficient unit entropy-coded in each time block, and deriving a context for decoding at least one bin of the first part using one or more previously decoded transform coefficients of each time block entropy-coded in the coefficient unit.

[0008] Time blocks entropy-coded in the above coefficient units generally cannot be decoded sample by sample. However, the coefficients often follow a value distribution that results in lower coefficients or even zero coefficients as one moves toward the end of the scan order. Therefore, providing the above-mentioned pre-set ranks allows for inferring which coefficients are zero and do not need to be actively transmitted / decoded. Deriving the above-mentioned pre-set ranks using a rough rank index and a detailed rank enables the ranks to be transmitted and decoded with low complexity and high compression. The coefficients generally tend to follow a trend along the scan order, which means that previously coded transformation coefficients may represent the currently coded transformation coefficients; accordingly, coding efficiency can be improved by deriving context for the first part using the previously coded transformation coefficients.

[0009] According to one aspect, corresponding encoders for encoding a digital time-varying signal into a data stream are provided.

[0010] According to additional aspects, corresponding methods for decoding and encoding digital time-varying signals into data streams are provided.

[0011] One embodiment relates to a data stream in which a digital time-varying signal (e.g., an audio signal, a biometric signal, or a seismic signal) is encoded using an encoding method described herein. The data stream may be stored in a storage medium (e.g., a non-transient storage medium).

[0012] One embodiment relates to a computer program having program code for executing the method described herein when executed on a computer (e.g., a computer program stored on a storage medium, e.g., a non-transient storage medium, e.g., a computer program product). Brief explanation of the drawing

[0013] The drawings are not necessarily drawn to scale, but instead focus on explaining the principles of the present invention in general. In the following description, various embodiments of the present invention are described with reference to the following drawings. Figure 1 illustrates a schematic diagram of a decoder for decoding a digital time-varying signal from a data stream. Figure 2 shows a schematic diagram of another example of an encoder. Figure 3 illustrates a schematic diagram of an encoder for encoding a digital time-varying signal into a data stream. Figure 4 illustrates a schematic diagram of another example of the encoder. FIG. 5 illustrates a schematic diagram of a first variation of another example of a decoder for decoding a digital time-varying signal from a data stream. FIG. 6 illustrates a schematic diagram of a second variation of another example of a decoder for decoding a digital time-varying signal from a data stream. FIG. 7 illustrates a schematic diagram of a first variation of another example of an encoder for encoding a digital time-varying signal into a data stream. FIG. 8 illustrates a schematic diagram of a second variation of another example of an encoder for encoding a digital time-varying signal into a data stream. FIG. 9 illustrates an encoder for encoding a multi-channel digital signal into a data stream, as well as a decoder for decoding the multi-channel digital signal from the data stream. Specific details for implementing the invention

[0014] Identical or equivalent elements or elements having the same or equivalent functions are indicated by the same or equivalent reference numerals in the following description, even if they appear in different drawings.

[0015] In the following description, a plurality of details are presented to provide a more detailed description 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 cases, to avoid obscuring embodiments of the present invention, well-known structures and devices are depicted in block diagram form rather than in detail. Furthermore, features of different embodiments described below may be combined with one another unless otherwise specifically stated.

[0016] FIG. 1 illustrates a schematic diagram of a decoder (12) for decoding a digital time-varying signal (92) from a data stream (16). The decoder (12) may be configured to decode a data stream (16) encoded by any encoder disclosed herein. The decoder (12) may include any combination of any features of any other decoder disclosed herein.

[0017] The decoder (12) decodes a residual sample value (80) (e.g., in the form of a residual signal or included in a residual signal) for the current sample position (17a) of each time block (140) entropy-coded on a sample-by-sample basis from the data stream (16), and corrects the predicted sample value (64) (e.g., in the form of a predicted signal or included in a predicted signal) for the current sample position (17a) using the residual sample value (80), thereby sequentially (e.g., using a sample order leading from an older sample position to a newer sample position, e.g., digital time-varying) the sample positions (e.g., 16 sample positions as shown in FIG. 1 or any other number of sample positions) of each time block (140) entropy-coded on a sample-by-sample basis (e.g., 16 sample positions as shown in FIG. 1 or any other number of sample positions) the pre-set sample value (13) (e.g., restored sample value or residual sample value for only a first-order prediction, e.g., a first sample value determined by an encoder) (e.g., using a sample order leading from an older sample position to a newer sample position). By determining the time order of the signal (92), the digital time-varying signal (92) from the data stream (16) is configured to decode the digital time-varying signal (92) in units of time blocks (140) by decoding each time block that is entropy-coded in units of samples among the time blocks (140) of the digital time-varying signal (92).

[0018] Decoding the residual sample value (80) for the current sample position (17a) of each time block (140) entropy-coded on a sample-by-sample basis includes entropy-decoding (21) the first part (23a) of the binarization of the residual sample value (80) in a binary context-adaptive manner, and decoding the remaining part (23b) of the binarization from the data stream (16).

[0019] The decoder (12) is configured to derive a context (25) for decoding at least one bin of the first part (23a) using a preset sample value (e.g., restored sample value or residual sample value for only the first prediction, e.g., second sample value) of one or more previous sample positions (17b, 17c) of each time block (140) that are entropy-coded on a sample-by-sample basis (e.g., one or more contexts, e.g., context for different parts and / or bins, e.g., context for one bin and another context for another bin).

[0020] The digital time-varying signal (92) may include one or more channels. Alternatively, the digital time-varying signal (92) may be a part of the entire digital time-varying signal (e.g., in the form of one or more channels). A channel may define a single parameter that takes a value over time, for example, the parameter is sampled over temporally continuous samples. The digital time-varying signal (92) may include or be an audio signal (e.g., having one or more audio channels), a biomedical signal (e.g., an electrogram obtained by electroencephalography, electrocardiogram, or electrooculography), or an earthquake signal. Any decoder (12) disclosed herein may be a decoder (12) for decoding an audio signal, a biomedical signal, or an earthquake signal. Any encoder (10) disclosed herein may be an encoder for encoding an audio signal, a biomedical signal, or an earthquake signal. The digital time-varying signal (92) may be one or more waveform signals or may include them. Any disclosure described herein with respect to an example having a single channel may also be applicable in any combination to a digital time-varying signal (92) having multiple channels.

[0021] Samples (each of which may define a single sample value) may be arranged in chronological order in the time domain. Sample-based coding may involve completing the restoration (which may be lossy or lossless) of the previous sample before coding the next sample. In other words, the restoration of the immediate prior sample may be completed while coding the current sample, thereby making the immediate prior sample available for coding the current sample.

[0022] A time block (140) may form a linear array of samples. Multiple time blocks (140) may have the same (or different) block length (or number of samples). For example, a time block (140) may contain 16, 32, 64, 128, 256, 512, or 1024 samples (or any other number, such as a power of 2 and a number different). Sample positions may define time positions within the time block (140). For example, a time block (140) may contain 16 samples occupying sample positions 1 through 16 in chronological order.

[0023] The pre-set sample value (13) of the sample may be a (e.g., fully) restored version of the sample or an intermediate value obtained during restoration. The pre-set sample value (13) may be a restored sample value or a residual sample value for only the first prediction.

[0024] Correcting the predicted sample value (64) for the current sample location (17a) using the residual sample value (80) may include a linear combination of the predicted sample value (64) and the residual sample value (80) (e.g., a sum or a weighted sum) (or may be implemented by this).

[0025] The residual sample value (80) may include or be composed of the first part (23a) and the remainder part (23b). The residual sample value (80) may be formed by or based on the concatenation of the first part (23a) and the remainder part (23b). The remainder part (23b) may or may not be decoded in a manner different from binary context-adaptive entropy decoding. One or more previous sample positions (17b, 17c) (for context derivation) of each time block (140) entropy-coded on a sample-by-sample basis may be temporally immediately before the current sample position (17a) (or, alternatively, one or more sample positions may be skipped toward the current sample position (17a)). One or more previous sample positions (17b, 17c) may be limited to the same time block (140) as the current sample position (17a) (e.g., all previous sample positions preceding the current sample position (17a) within the same time block (140), e.g., up to a maximum number of sample positions). The number of previous sample positions (17b, 17c) may be the same for decoding different sample positions. The number of previous sample positions (17b, 17c) may have a lower threshold and / or an upper threshold.

[0026] Context may be derived for multiple bins (or all bins) of the first part (23a), and each context may be derived based on a pre-set sample value of one or more previous sample positions (17b, 17c) that are the same or different. The context of a bin of the first part (23a) may be derived based on one or more already decoded bins of the first part (23a) (e.g., in addition to the pre-set sample value of one or more previous sample positions (17b, 17c)). The context may define a set of symbols (e.g., a code book or an alphabet) for coding one or more bins.

[0027] FIG. 2 illustrates a schematic diagram of another example of a decoder (12). Any feature disclosed with reference to FIG. 2 may be used in combination of any feature of any decoder (12) disclosed herein.

[0028] The decoder (12) may be configured to derive a first context for decoding a first pre-set bin (27a) of a first part (23a) (which may optionally be a first bin to be coded within a bin sequence) by using the sum (optionally weighted) of the absolute values ​​of pre-set sample values ​​of preceding sample positions (17b, c) of each time block (140) entropy-coded in sample units, which is located within a template (31) having a pre-set relative time position (e.g., a template defining a positive and / or spatial distance for the current sample position) for the current sample position, and using the context to entropy decode at least one bin and / or using the zero status and / or sign of the pre-set sample values ​​of the preceding sample position of each time block entropy-coded in sample units. For example, the first context may be derived based on whether the preset sample value of the preceding sample position is equal to, less than, or greater than 0 (e.g., having three possible states, e.g., having two possible states, e.g., derived based solely on the sign of the value of the preceding sample value). Alternatively or additionally, the first context may be derived based on the sum of absolute values ​​within the template (31) (e.g., within the time block (140)). The template (31) illustrated in FIG. 2 includes (or consists of) five preceding sample positions. However, any other number of sample positions at any other spatial distance may be used instead. Furthermore, the number of sample positions may be fixed or varied (e.g., to use only sample positions within the time block (140)).

[0029] The first set bin (27a) may be a significance flag indicating whether the residual sample value (80) is 0.

[0030] The decoder (12) may be configured to derive a second context for decoding a sequence of excess bins (27b-e) (e.g., flags) of the first part (23a), x-1 (or x-1 clipped to the first maximum value, e.g., the number of greaterX_flags decoded so far, e.g., the value X of greaterX_flag reduced by 1, optionally clipped to the first maximum value), and the sum of absolute values ​​of pre-set sample values ​​of preceding sample positions of each time block entropy-coded by sample, located within a template (31) having a pre-set relative time position for the current sample position (17a), and to use the context to entropy decode at least one bin (27b), or a quantized and clipped version of the sum, and each of the excess bins (27b-e) determines whether the residual sample value (80) is greater than x+const when the rank of each excess bin is x Indicates (e.g., const is a constant such as 0, e.g., a constant greater than 0). For example, the first part (23a) may include a greater-than-one bin (27b), a greater-than-two bin (27c), a greater-than-three bin (27d), and a greater-than-four bin (27e). However, any other number of greater-than bins (27b-e) (and optionally having a constant) indicating whether they are greater than any other number may be used. For example, the second context for decoding the greater-than-two bin (27c) may be derived according to at least one of the sum of the absolute values ​​of the pre-set sample values ​​of the preceding sample positions of each time block entropy-coded in sample units located within the greater-than-one bin (27b) and the template (31) (which may optionally be clipped and / or quantized).

[0031] The decoder (12) may be configured to derive a predicted sample value (64) for the current sample position (17a) by using a template (31) of the K sample positions immediately preceding the current sample position (17a) (e.g., K=5 in FIG. 2, but any other number for K, such as any power of 2, may be used) in a sample order (e.g., temporal) in which the pre-set sample values ​​for the sample positions of each time block (140) entropy-coded in sample units are sequentially decoded by forming a weighted sum of pre-set sample values ​​for each time block entropy-coded in sample units at K sample positions.

[0032] The decoder (12) may be configured to derive a second context for decoding a sequence of excess bins (27b-e) of the first part (23a) based on one or more of x-1, x-1 clipped to the first maximum value, and whether the current sample position (17a) is separated by less than K sample positions from the previously decoded time block (e.g., the last three sample positions of the previous block are shown on the left side of the time block (140)) in reverse order of the sample order (e.g., at a distance measured toward the left from the sample position (17a) in FIG. 2), and each of the excess bins (27b-e) indicates whether the residual sample value is greater than x+const when the rank of each excess bin is x. That is, the second context for decoding the sequence of excess bins (27b-e) may depend on whether the current sample position (17a) is arranged at a position smaller than K within the time block (140).

[0033] The decoder (12) may be configured to determine a rice parameter (e.g., a parameter determining the division of the value at the current sample position) by quantizing or thresholding a measure of the absolute sum of the values ​​of all preceding sample positions of each sample-unit entropy-coded time block (140) in order to decode the rice code using the rice parameter, in order to decode the rice code. The rice code may include a unary code quotient part (e.g., the remainder after division based on the rice parameter), and the decoder (12) may be configured to decode the bins of the unary code quotient part by context-adaptive binary entropy decoding.

[0034] The unary code quotient portion may be a truncated unary code that is truncated such that the number of codewords of the truncated unary code is limited to a preset maximum quotient value, and if the unary code portion of the rice code corresponds to a preset codeword associated with a preset maximum quotient value, the fixed-length remainder portion of the rice coding may not exist, and if the unary code portion of the rice code does not correspond to a preset codeword associated with a preset maximum quotient value, the decoder (12) may be configured to decode a fixed-length remainder portion having a length corresponding to the rice parameter. If the unary code portion of the rice code corresponds to a preset codeword associated with a preset maximum quotient value, the decoder (12) may be configured to decode an exponential Golom code as an extension of the rice code.

[0035] The decoder (12) may be configured to predict each time block entropy-coded on a sample-by-sample basis using one selected from a set of prediction modes to obtain a prediction signal (64) (e.g., the prediction signal (64) may include one sample of the time block (140), a subset of samples, or all samples of the prediction sample value (64) of the time block (140), and to correct the prediction signal (64) using a preset sample value (e.g., a restored sample value or a residual sample value for only the first prediction) for each sample position (17) of each time block entropy-coded on a sample-by-sample basis.

[0036] The set of prediction modes may include an intra prediction mode (which may also be called a block-copy mode), an inter-prediction mode (which may also be called a cross-channel prediction mode, for example, when the digital time-varying signal (92) includes more than one channel), a mixed prediction mode, a DC prediction mode, and one or more of any other modes disclosed herein.

[0037] FIG. 3 illustrates a schematic diagram of an encoder (10) for encoding a digital time-varying signal (92) into a data stream (16). The encoder (10) may be configured to encode a data stream (16) that is decodingable by any decoder disclosed herein. The encoder (10) may include any combination of any features of any other encoder disclosed herein. Any decoder-side features disclosed herein may be applied to any encoder disclosed herein.

[0038] The encoder (10) is configured to encode the digital time-varying signal (92) into the data stream (16) in units of time blocks (140) by encoding the residual sample value (80) for the current sample position (17a) of each time block (140) that is entropy-coded in units of samples, by sequentially determining the pre-set sample value (13) (e.g., restored sample value or residual sample value for only the first prediction) for the sample position (17) of each time block (140) that is entropy-coded in units of samples (e.g., using a sample order leading from an older sample position to a newer sample position), by encoding each time block (140) of the digital time-varying signal (92) that is entropy-coded in units of samples, and the residual sample value (80) is intended to correct the predicted sample value (64) for the current sample position (17a) using the residual sample value (80).

[0039] Encoding the residual sample value (80) for the current sample position (17a) of each time block (140) entropy-coded on a sample-by-sample basis includes entropy-coding the first part (23a) of the binarization of the residual sample value (80) in a binary context-adaptive manner and encoding the remaining part (23b) of the binarization into a data stream (16).

[0040] The encoder (10) is configured to derive a context (25) for encoding at least one bin of the first part (23a) using pre-set sample values ​​of one or more previous sample positions (17b, 17c) of each time block (140) that are entropy-coded on a sample-by-sample basis.

[0041] FIG. 4 illustrates a schematic diagram of another example of an encoder (10). Any feature disclosed with reference to FIG. 4 may be used in combination of any feature of any encoder disclosed herein.

[0042] The encoder (10) may be configured to derive a first context for encoding a first set bin (27a) of a first part (23a) by using the sum (optionally weighted) of the absolute values ​​of the preceding sample positions (17b, c) of each time block (140) entropy-coded on a sample-by-sample basis, which is located within a template (31) having a relative time position set on a sample-by-sample basis, and using the context to entropy-encode at least one bin (27a) and / or using the zero status and / or sign of the set sample values ​​of the preceding sample position of each time block entropy-coded on a sample-by-sample basis.

[0043] The first set bin (27a) may be a significance flag indicating whether the residual sample value (80) is 0.

[0044] The encoder may be configured to derive a second context for encoding a sequence of excess bins (27b-e) of the first part (23a) (e.g., one or more of the bins (27b-e)), using the context to entropy encode at least one bin, or a quantized and clipped version of the sum (e.g., depending on the quantized and / or clipped version of the sum), wherein each of the excess bins (27b-e) indicates whether the residual sample value (80) is greater than x+const when the rank of each excess bin is x (e.g., const is a constant such as 0).

[0045] The encoder (10) may be configured to derive a predicted sample value (64) for the current sample position (17a) by using a template (31) of the preceding K sample positions (27b, c) of the current sample position (27a) in a sample order in which the pre-set sample values ​​for the sample positions of each time block (140) entropy-coded in sample units are sequentially encoded by forming a weighted sum of pre-set sample values ​​for each time block entropy-coded in sample units at K sample positions.

[0046] The encoder (10) may be configured to derive a second context for encoding a sequence of excess bins (27b-e) of the first part (23a) (e.g., one or more of the bins (27b-e)) based on one or more of x-1 (or x-1 clipped to the first maximum value) and whether the current sample position (17a) is separated from the previously encoded time block by less than K sample positions in reverse order of the sample order, and each of the excess bins (27b-e) indicates whether the residual sample value is greater than x+const when the rank of each excess bin is x.

[0047] The encoder (10) may be configured to determine a rice parameter by quantizing or thresholding a measure of the absolute sum of pre-set sample values ​​for each preceding sample position of each entropy-coded time block (140) in a sample-by-sample manner, in encoding the remainder of the binarization (23b) into a data stream (16), and to encode a rice code using the rice parameter. The rice code may include a unary code quotient portion, and the encoder (10) may be configured to encode the bins of the unary code quotient portion by context-adaptive binary entropy encoding. The unary code quotient portion may be a truncated unary code that is truncated such that the number of codewords of the truncated unary code is limited to a preset maximum quotient value, and if the unary code portion of the rice code corresponds to a preset codeword associated with a preset maximum quotient value, the fixed-length remainder portion of the rice coding may not exist, and if the unary code portion of the rice code does not correspond to a preset codeword associated with a preset maximum quotient value, the encoder (10) may be configured to encode a fixed-length remainder portion having a length corresponding to the rice parameter. If the unary code portion of the rice code corresponds to a preset codeword associated with a preset maximum quotient value, the encoder (10) may be configured to encode an exponential Golom code as an extension of the rice code.

[0048] The encoder (10) may be configured such that, in encoding each time block of the time block (140) of the digital time-varying signal (92) that is entropy-coded on a sample-by-sample basis, it predicts each time block of the time block (140) that is entropy-coded on a sample-by-sample basis using one selected from a set of prediction modes to obtain a prediction signal (64), and at each sample position of each time block (140) that is entropy-coded on a sample-by-sample basis, the prediction signal (64) can be corrected using a preset sample value (e.g., a restored sample value or a residual sample value for only a first prediction) for each sample position of each time block (140) that is entropy-coded on a sample-by-sample basis.

[0049] FIG. 5 illustrates a schematic diagram of a first variation of another example of a decoder (12) for decoding a digital time-varying signal (92) from a data stream (16).

[0050] The decoder (12) derives (35) from the data stream (16) a preset rank (37) indicating that among the transform coefficients (40) of the time block entropy-coded in coefficient units (e.g., samples of the transform domain), the transform coefficients (40) having a rank greater than a preset rank (37) are zero according to the scan order (39) defined between the transform coefficients (40), and sequentially decodes (41) the transform coefficients (40) having a rank smaller than the preset rank (37) in reverse order with respect to the scan order (39) (e.g., from bottom to top in FIG. 5) (e.g., at least, e.g., only) (e.g., transform coefficients having a rank less than or equal to the rank of the preset rank (37), e.g., all non-zero coefficients), and the transform of each time block entropy-coded in coefficient units to obtain a time domain residual signal (45) (e.g., including one or more time domain residual signals (13)). The digital time-varying signal (92) is configured to decode the digital time-varying signal (92) from the data stream (16) in terms of time blocks by performing a re-conversion (43) on the coefficients and restoring each time block (140) entropy-coded in terms of coefficients by correcting the prediction signal (64) for each time block entropy-coded in terms of coefficients using the time domain residual signal (45), thereby decoding each time block entropy-coded in terms of coefficients among the time blocks (140) of the digital time-varying signal (92).

[0051] Note that the pre-set rank (37) may represent a rank between two conversion coefficients (in the scan order (39)) (e.g., instead of a rank related to the conversion coefficient (40)), for example, a rank between the last non-zero coefficient and the first zero coefficient (according to the scan order (39)). In this case, all non-zero coefficients may have a rank smaller than the pre-set rank (37), and zero coefficients may have a rank larger than the pre-set rank (37) (e.g., no conversion coefficient having the same rank as the pre-set rank (37)). In another embodiment, the pre-set rank (37) may represent a rank of the conversion coefficient (40), in which case the pre-set rank (37) may represent the rank of the last conversion coefficient having a non-zero value (in the scan order (39)) (e.g., the last non-zero coefficient may have the same rank as the pre-set rank (37)). The decoder (12) may be configured to decode conversion coefficients (40) having a rank smaller than at least the preset rank (37), and may additionally decode conversion coefficients (40) having the same rank as the preset rank (37). In another embodiment, the preset rank (37) may indicate that conversion coefficients (40) having a rank greater than or equal to the preset rank (37) are zero (following the scan order (39)). The decoder (12) may be configured to decode only conversion coefficients (40) having a rank smaller than the preset rank (37) and not to decode conversion coefficients (40) having the same rank as the preset rank (37). In either case, the preset rank (37) enables the distinction between non-zero coefficients and zero coefficients (e.g., enables the identification of non-zero coefficients based on the preset rank (37)). As a result, the non-zero coefficient can be decoded.

[0052] According to the first variation (e.g., as illustrated in FIG. 5), the decoder (12) is configured to derive (35) a preset rank (37) from the data stream (16) by decoding a preset rank index (47a) that indexes one of a plurality of preset rank positions following the scan order (39) and by decoding a detailed rank offset (47b) that points to a preset rank (37) relative to one preset rank position. The preset rank positions may be arranged at equal distances from each other, for example, a distance of 4 (e.g., there are 3 positions between two preset rank positions). In other words, the preset rank positions may subdivide a block of transformation coefficients into sub-blocks, for example, the preset rank index indexes a sub-block containing a preset rank (e.g., the preset rank position indicates the start or end of the sub-block).

[0053] The decoder (12) may be configured to derive a preset rank (37) from the data stream (16) by decoding a detailed rank offset (47b) using a fixed-length code (e.g., when all bins are bypass-coded by the base CABAC engine, e.g., when a probability of 0.5 is assumed for all values ​​of these bins). The decoder (12) may also be configured to decode the fixed-length code into the data stream at a code rate of 1 (e.g., the code rate of a forward error correction code).

[0054] The decoder (12) may be configured to derive a preset rank (37) from the data stream (16) by decoding the outline rank index (47a) using a truncated unary code when one outline rank position corresponds to one of X leading outline rank positions in the scan order (39) (e.g., X is a number such as 2, 3, 4 or a number greater than that, e.g., a power of 2) (e.g., the number of X outline rank positions arranged in the earliest position along the scan order (39), e.g., X outline rank positions are spaced apart from each other by more than one rank position), and when one outline rank position does not correspond to X leading outline rank positions in the scan order, by decoding the outline rank index (47a) using a truncated binary code following the truncated unary code for X to index one outline rank position among the subsequent outline rank positions following X leading outline rank positions in the scan order (39). In other words, if a single outline rank position does not correspond to X leading outline rank positions (e.g., if it does not correspond to an early rank position), an optional truncated binary code may additionally be used to index a single outline rank position.

[0055] FIG. 6 illustrates a schematic diagram of a second variation of another example of a decoder (12) for decoding a digital time-varying signal (92) from a data stream (16).

[0056] Similar to what is illustrated in FIG. 5 above, the decoder (12) derives (35) from the data stream (16) a set rank (37) indicating that among the transform coefficients (40) of the time block entropy-coded in coefficient units (e.g., samples of the transform domain), the transform coefficients (40) having a rank greater than the set rank (37) are zero according to the scan order (39) defined between the transform coefficients (40); and in reverse order with respect to the scan order (39), sequentially decodes (41) the transform coefficients (40) having a rank smaller than the set rank (37) (e.g., FIG. 6 shows eight transform coefficients, the last two coefficients have a value of 0, and an exemplary transform coefficient (40d) is the transform coefficient currently being decoded) (e.g., transform coefficients having a rank less than or equal to the rank of the set rank (37), e.g., all non-zero coefficients), and the time domain residual To obtain a signal (45), a re-conversion (43) is performed on the conversion coefficients of each time block entropy-coded in coefficient units, and by using the time domain residual signal (45) to correct the prediction signal (64) for each time block entropy-coded in coefficient units, each time block (140) entropy-coded in coefficient units is restored, thereby decoding each time block entropy-coded in coefficient units among the time blocks (140) of the digital time-varying signal (92), and the digital time-varying signal (92) from the data stream (16) is decoded in time block units.

[0057] According to a second variation, the decoder (12) sequentially decodes the transform coefficients (40) having a rank smaller than a preset rank (37) (e.g., transform coefficients having a rank smaller than or equal to the rank of the preset rank (37), e.g., all non-zero coefficients) in reverse order with respect to the scan order (39), by entropy decoding (51) the first part (53a) of the binarization of the currently decoded transform coefficient (40d) (in FIG. 6, the currently decoded transform coefficient is exemplarily denoted by reference numeral 40d, but any other transform coefficient may be the currently decoded transform coefficient) in a binary context-adaptive manner, and by decoding the remaining part (53b) of the binarization from the data stream (16), thereby decoding the currently decoded transform coefficient (40d) of each time block entropy-coded in units of coefficients, wherein one or more prior to each time block entropy-coded in units of coefficients It is configured to derive a context (55) for decoding at least one bin of the first part (53a) using the decoded conversion coefficients.

[0058] Note that in the examples described with reference to FIGS. 5 and 6, the two parts of the value (e.g., a rough rank index (47a) and a detailed rank offset (47b), and the first part (53a) and the remaining part (53b)) are referred to simply as “variations” to emphasize that they can be used for different types of values, such as rank positions and transformation coefficients. However, the two variations are not mutually exclusive. For example, the pre-set rank (37) and transformation coefficients may both be coded in two parts, or they may be coded by combining the features described with reference to FIGS. 5 and 6, for example. This also applies to the encoder variations described below with reference to FIGS. 7 and 8.

[0059] In FIG. 6, the context (55) is derived, for example, using a single transformation coefficient (40c) immediately preceding the transformation coefficient (40d) currently being decoded. However, any other number of transformation coefficients (40) of any combination and / or position (or rank) may be used instead.

[0060] The decoder (12) may be configured to decode the currently decoded transform coefficient (40d) of each time block entropy-coded in coefficient units by deriving a context (55) for decoding at least one bin of the first part (53a) by decoding the transform coefficient (40d) currently decoded in reverse order of the scan order (39), in which transform coefficients (40) having a rank smaller than a preset rank (37) are sequentially decoded, in reverse order of the scan order (39), by quantizing or thresholding a sum measure (e.g., sum or weighted sum) of the absolute values ​​of previously decoded transform coefficients (e.g., all coefficients previously decoded for the time block (140) or a subset thereof) within a template that covers rank positions of a preset number (e.g., 2, 3, 4, 5, 6 or a power of 2, or any other number, e.g., the previous transform coefficient (40d)) prior to the currently decoded transform coefficient (40d) in the scan order (39).

[0061] The decoder (12) may be configured to sequentially decode transformation coefficients (40) having a rank smaller than a preset rank (39) in reverse order of the scan order (39), and to decode a sequence of excess bins of the first part by deriving a second context according to the quantized version of the rank of the transformation coefficient currently being decoded, and to decode the transformation coefficient (40d) currently being decoded in each time block entropy-coded in coefficient units, and each of the excess bins indicates whether the residual sample value is greater than x+const when the rank of each excess bin is x.

[0062] A decoder (12) (e.g., with reference to FIG. 5 or FIG. 6) may be configured to decode transformation coefficients (40) using binarization that includes a significance bin (e.g., a flag), and may be configured to infer that the significance flag indicates non-zero when decoding transformation coefficients whose position in the scan order (39) is equal to a preset rank (37). For example, inference of significance for a first coefficient following the endPos indicator (or flag or syntax element) may be performed (e.g., in the reverse scan order (39)). If the preset rank (37) indicates a rank of transformation coefficients, inference of this significance flag indicating non-zero may be performed for transformation coefficients whose position in the scan order (39) is equal to the preset rank (37) or one rank smaller than the preset rank (37) (e.g., depending on whether the preset rank (37) indicates the last non-zero coefficient or the first zero coefficient). If the pre-set rank (37) represents a rank among the transformation coefficients (40), the inference of this significance flag representing non-zero may be performed on the transformation coefficient that is the largest rank among the ranks that is smaller than the pre-set rank (37) in the scan order (39).

[0063] The decoder (12) (e.g., with reference to FIG. 5 or FIG. 6) may be configured to decode the transformation coefficients (40) using binarization including a significance bin, and may be configured to decode the significance bin when the position in the scan order (39) is the same as the pre-set rank (37) when decoding the transformation coefficients (40), and when the pre-set rank (37) corresponds to the last rank of the scan order (39) (or the last rank in the reverse direction of the scan order (39)), and to infer that the significance flag indicates non-zero when the pre-set rank (37) does not correspond to the last rank of the scan order (39) (or the last rank in the reverse direction of the scan order (39). For example, inference of significance for the first coefficient after the endPos indicator may be performed, but may not be performed when endPos=0. For example, if the pre-set rank (37) is the last rank in the reverse scan order (39) (e.g., the first rank in the scan order (39)), the value may be a unique value that is not zero or may also be zero, which may require decoding the significance bin. However, if the pre-set rank (37) does not correspond to the last rank in the reverse scan order (39) (e.g., the first rank in the scan order (39)), non-zero coefficients may exist, which indicates that not all transformation coefficients are zero, so it may be possible to infer that the transformation coefficient (40) in the pre-set rank (37) is not zero without needing to code the significance bin.

[0064] A decoder (12) (e.g., with reference to FIG. 5 or FIG. 6) may be configured to decode the currently decoded transform coefficient of each time block entropy-coded in coefficient units by deriving a context for decoding at least one bin of a first part (e.g., the first part (53a) described with reference to FIG. 6, or the decoding of the first part (53a) described in any form with reference to FIG. 6 applied to the decoding of FIG. 5) using one or more previously decoded transform coefficients of each time block entropy-coded in coefficient units in reverse order of scan order (39), wherein a context that varies according to the rank of the currently decoded transform coefficient is used (e.g., previously in a template covering a set number of rank positions prior to the currently encoded transform coefficient (40d) in scan order (39) optionally prior to It is also derived by quantizing or thresholding the sum of the absolute values ​​of the encoded transform coefficients (e.g., using templateClassIdx and / or NUM_TEMPLATE_SUM_CLASSES). For example, for at least one context model selection executed to decode a specific bin (e.g., a code bin or any other bin) occurring at a fixed position in the binarization used for all transform coefficients of a block, this context selection is executed according to the position (or rank) of each residual transform coefficient currently being decoded. For example, the context model selection selects a first context model for each bin if the position of the transform coefficient currently being decoded belongs to a first set of positions, and selects a second context model if the position of the transform coefficient currently being decoded belongs to a second set of positions. However, more than two sets of positions (or ranks) may be used. The context model selection may also depend on the position in the frequency domain.For example, a different context model may be used or selected for high frequencies compared to low frequencies.

[0065] FIG. 7 illustrates a schematic diagram of a first variation of another example of an encoder (10) for encoding a digital time-varying signal (92) into a data stream (16). The data stream (16) encoded by the encoder (10) may be decoded by a decoder (12) shown in FIG. 5 (or any other decoder disclosed herein).

[0066] The encoder (10) obtains transformation coefficients (40) by performing a transformation on the time domain residual signal (13) of each time block entropy-coded in coefficient units, which enables each time block entropy-coded in coefficient units to be restored (e.g., available for restoration) by correcting the prediction signal (64) for each time block entropy-coded in coefficient units using the time domain residual signal (13); among the transformation coefficients (40) of the time block entropy-coded in coefficient units, a pre-set rank (37) is signaled in the data stream (16) indicating that the transformation coefficients having a rank greater than the pre-set rank are 0 according to the scan order (39) defined between the transformation coefficients; and sequentially encodes (57) the transformation coefficients having a rank smaller than the pre-set rank (37) in reverse order of the scan order (e.g., encoding the transformation coefficients having a rank less than or equal to the pre-set rank (37), thereby the time of the digital time-varying signal (92). Each time block (140) entropy-coded in the coefficient unit of the blocks (140) is encoded to encode the digital time-varying signal (92) into the data stream (16) in the time block unit.

[0067] According to the first variation (e.g., can be used in combination with the decoder (12) illustrated in FIG. 5), the encoder (10) is configured to encode a preset rank (37) into a data stream (16) by encoding a preset rank index (47a) that indexes one of a plurality of preset rank positions following a scan order (39), and by encoding a detailed rank offset (47b) that points to a preset rank (37) relative to one preset rank position.

[0068] The encoder (10) may be configured to encode a pre-set rank (37) into a data stream by encoding a detailed rank offset (47a) using a fixed-length code. For example, all bins may be bypass-coded by the underlying CABAC engine (e.g., assuming a probability of 0.5 for all values ​​of these bins). The encoder (10) may be configured to encode a fixed-length code into a data stream at a code rate of 1.

[0069] The encoder (10) may be configured to encode a pre-set rank (37) into a data stream (16) by encoding a pre-set rank (37) using a truncated unary code when one pre-set rank position corresponds to one of X leading pre-set rank positions in the scan order (39), and when one pre-set rank position does not correspond to X leading pre-set rank positions in the scan order (39), encoding the pre-set rank index (47a) using a truncated binary code following the truncated unary code for X to index one pre-set rank position among the subsequent pre-set rank positions following X leading pre-set rank positions in the scan order (39).

[0070] FIG. 8 illustrates a schematic diagram of a second variation of another example of an encoder (10) for encoding a digital time-varying signal (92) into a data stream (16). The data stream (16) encoded by the encoder (10) may be decoded by a decoder (12) shown in FIG. 6 (or any other decoder disclosed herein).

[0071] The encoder (10) obtains transformation coefficients (40) by performing a transformation on the time domain residual signal (13) of each time block entropy-coded in coefficient units, which enables each time block entropy-coded in coefficient units to be restored (e.g., available for restoration) by correcting the prediction signal (64) for each time block entropy-coded in coefficient units using the time domain residual signal (13); among the transformation coefficients (40) of the time block entropy-coded in coefficient units, a pre-set rank (37) is signaled in the data stream (16) indicating that the transformation coefficients having a rank greater than the pre-set rank (37) are 0 according to the scan order (39) defined between the transformation coefficients (40); and sequentially encodes (57) the transformation coefficients having a rank smaller than the pre-set rank (37) (e.g., encodes the transformation coefficients having a rank less than or equal to the pre-set rank (37)) in reverse direction with respect to the scan order (39), thereby digital time-varying Each time block (140) of the time block (140) of the signal (92) is encoded in the coefficient unit of the entropy-coded time block (140) to encode the digital time-varying signal (92) into a data stream (16) in the time block unit.

[0072] According to a second variation (e.g., can be used in combination with the decoder (12) illustrated in FIG. 6), the encoder (10) is configured to encode (57) the currently encoded transform coefficients (40d) of each time block entropy-coded in coefficient units, by sequentially encoding transform coefficients (40) having a rank smaller than a preset rank (37) in reverse order of the scan order (39), entropy-encoding the first part (53a) of the binarization of the currently decoded transform coefficients (40d) in a binary context adaptive manner, and encoding the remaining part (53b) of the binarization into a data stream (16), thereby deriving a context for encoding at least one bin of the first part (53a) using one or more previously encoded transform coefficients (40c) of each time block entropy-coded in coefficient units (e.g., or any other number and / or combination of any other previously encoded transform coefficients).

[0073] The encoder (10) may be configured to sequentially encode transformation coefficients (40) having a rank smaller than a preset rank (39) in reverse order of the scan order (39), and to derive a context for encoding at least one bin of the first part (53a) by quantizing or thresholding a sum measurement of the absolute values ​​of previously encoded transformation coefficients within a template covering a preset number of rank positions prior to the transformation coefficient (40d) currently being encoded in the scan order (39), thereby encoding the transformation coefficient (40d) currently being encoded in each time block that is entropy-coded in units of coefficients.

[0074] The encoder (10) may be configured to sequentially encode transformation coefficients (40) having a rank smaller than a preset rank (39) in reverse order of the scan order (39), and to encode a sequence of excess bins of the first part by deriving a second context according to the quantized version of the rank of the transformation coefficient (40d) currently being encoded, and to encode the transformation coefficient (40d) currently being encoded of each time block entropy-coded in units of coefficients, and each of the excess bins indicates whether the residual sample value is greater than x+const when the rank of each excess bin is x.

[0075] The encoder (10) (e.g., with reference to FIG. 7 or FIG. 8) may be configured to encode transformation coefficients (40) using binarization including a significance bin, and may be configured to infer that the significance flag indicates non-zero when encoding transformation coefficients where the position in the scan order (39) is the same as a preset rank (37). For example, the inference of significance for the first coefficient after the endPos indicator may be performed accordingly.

[0076] The encoder (10) (e.g., with reference to FIG. 7 or FIG. 8) may be configured to encode transformation coefficients (40) using binarization including significance bins, and in encoding transformation coefficients where the position in the scan order (39) is the same as a preset rank (37), the encoder may encode the significance bin if the preset rank (37) corresponds to the last rank of the scan order (39) (or the last rank in the reverse direction of the scan order (39)), and infer that the significance flag indicates non-zero if the preset rank does not correspond to the last rank of the scan order (39) (or the last rank in the reverse direction of the scan order (39). For example, inference of significance for the first coefficient after the endPos indicator may be performed, but may not be performed when endPos=0. For example, if the pre-set rank (37) is the last rank in the reverse scan order (39) (e.g., the first rank in the scan order (39)), the value may be a unique value that is not zero or may also be zero, which may require decoding the significance bin.

[0077] The encoder (10) (e.g., with reference to FIG. 7 or FIG. 8) may be configured to encode the currently encoded transform coefficient (40d) of each time block entropy-coded by coefficients by deriving a context for encoding at least one bin of the first part (53a) using one or more previously encoded transform coefficients of each time block entropy-coded by coefficients, in reverse order of the scan order (39) and having a rank smaller than a preset rank (37), thereby encoding the currently encoded transform coefficient (40d) of each time block entropy-coded by coefficients, using a context that varies according to the rank of the currently encoded transform coefficient (40d). For example, regarding at least one context model selection executed to encode a specific bin occurring at a fixed position in the binarization used for all transform coefficients of a block, this context selection may be executed according to the position of each residual transform coefficient currently being encoded, for example, the context model selection selects a first context model for each bin if the position of the transform coefficient currently being encoded belongs to a first set of positions, and selects a second context model if the position of the transform coefficient currently being encoded belongs to a second set of positions. For example, the context model selection may vary depending on the position in the frequency domain, for example, a different context model may be used for high frequencies compared to low frequencies.

[0078] In addition, a method for decoding a digital time-varying signal (92) from a data stream (16) is provided. This method may be executed by any decoder (12) disclosed herein.

[0079] In addition, a method for encoding a digital time-varying signal (92) into a data stream (16) is provided. This method may be executed by any encoder (10) disclosed herein.

[0080] Additional examples for coding digital time-varying signals are described below. The features of the embodiments described above may be combined in any combination with the features of the embodiments described below, and vice versa.

[0081] Coding of digital time-varying signals using entropy coding

[0082] Entropy coding of residual data for waveform signals

[0083] Digital data to be compressed using NPC (near perfect compression) may consist of one or more channels of a one-dimensional (e.g., integer) sample sequence. During coding, the data may be divided into blocks of samples, and may be coded, for example, on a sample-by-sample basis (e.g., on a time block-by-sample basis) or on a block basis (e.g., coded as a transformation factor for a transformation from the time domain to the frequency domain).

[0084] In the case of sample-unit coding, samples of a block (e.g., time block (140)) may be coded sequentially in such a manner that each sample can be fully restored by a decoder (e.g., any decoder described herein) before the next sample is processed. Thus, during the decoding of a given sample (e.g., the sample currently being decoded), all previously decoded samples (or a subset thereof) of the block, and thus the information they contain, may be used (e.g., for prediction, context modeling, etc.). For sample-unit coding, two different exemplary approaches (e.g., methods) are presented below (see Sections 1.1 and 1.2).

[0085] In the case of block-unit coding, an entire block of samples, rather than a single sample, may be input into coding steps such as prediction, residual transformation, and entropy coding of transformation coefficients.

[0086] 1.1 Sample-unit entropy decoding (Method 1)

[0087] 1.1.1 Binarization and Coding Methods

[0088] When a given sample block is decoded on a sample-by-sample basis, each restored sample may include (or be composed of) a prediction (e.g., a prediction sample value (64), e.g., a prediction signal) and a binarized and entropy-coded residual value res_val (residual sample value (80)), which may be decoded as follows.

[0089] First, a sig_flag (e.g., significance flag, first set bin (27a)) (context-modeled, see 1.1.2) may be received. If sig_flag is equal to 0 (e.g., if the residual sample value (80) is 0), the residual value res_val may also be set to 0, and the decoding of res_val may be completed.

[0090] If sig_flag is equal to 1 (e.g., indicating that the residual sample value (80) is not 0), res_val may be set to 1 (e.g., to potentially be set to a different value depending on subsequent bin or code). Now, (context-modeled, see 1.1.2) sign_flag (e.g., indicating the mathematical sign of the residual sample value (80)) may be received and, for example, stored for later use (however, it may be applied during any step). Next, the value numGreaterFlagsDecoded may be initialized to 0, and (context-modeled, see 1.1.2) a greaterX_flag (e.g., the first greaterX_flag (27b) of a sequence of greaterX_flags (27b-e)) may be received (e.g., indicating that the residual sample value (80) is greater than X, e.g., greater than 1), and then numGreaterFlagsDecoded may be set to 1. Subsequently, additional greaterX_flags, e.g., greaterX_flags with a value of 1 may be identified. While greaterX_flag is equal to 1 and numGreaterFlagsDecoded is less than the qualifying parameter maxNumGrXFlags (e.g., the first maximum value), the following steps may be executed in a loop: increment res_val by 1, receive and overwrite greaterX_flag, and increment numGreaterFlagsDecoded by 1. This loop is similar to variable-length unary decoding.

[0091] For example, maxNumGrXFlags may be 4, in which case greater2_flag, greater3_flag and greater4_flag may be received. If 0 is received after greater2_flag which has a value of 1, the loop may terminate with the residual sample value (80) having a value of 3.

[0092] Now, if the last received greaterX_flag is equal to 1 (meaning the loop terminated due to numGreaterFlagsDecoded >= maxNumGrXFlags), res_val is incremented by 1 one more time, and the remaining remAbsLevel, which may represent the remainder value for the residual sample value (80) that may exceed the last or greatest X, is decoded as follows.

[0093] First, the values ​​remAbsLevel, log2NumElemNextGroup, and ctxIdx are all initialized to 0. Now, remAbs_flag is received using ctxIdx as the context model identifier. If remAbs_flag is equal to 0, decoding of remAbsLevel (which is equal to 0 at this point) is completed (e.g., this may indicate that the absolute value for the residual sample value (80) has the value of X+1 of the last greaterX_flag). However, if remAbs_flag is not equal to 0, remAbsLevel, log2NumElemNextGroup, and ctxIdx may all be incremented by 1. Now, in the loop, remAbs_flag is received using ctxIdx as the context model identifier (e.g., received from the data stream (16) and decoded using the context model identified based on ctxIdx). The loop may be terminated if a bean of 0 is received. Inside the loop (e.g., while non-zero beans are received), for each remAbs_flag such as 1, the following steps are executed in the loop: set remAbsLevel to 1< <log2NumElemNextGroup만큼 증가시키고(예컨대, 좌측 시프트 연산자 “<<”를 이용하여, 예컨대 remAbsLevel을 2의 log2NumElemNextGroup 거듭제곱의 값만큼 증가시킴), log2NumElemNextGroup을 1만큼 증가시키고, ctxIdx를 1만큼 증가시킨다. 마지막으로, 루프가 종료된 후(예컨대, 0인 빈이 수신되고 및 / 또는 최대 루프 횟수에 도달한 후), log2NumElemNextGroup개의 빈이 EP 코딩(예컨대, 지수 골롬 코딩)을 이용하여 수신되고, 정수로 해석되어 remAbsLevel에 더해지며, 이에 따라 remAbsLevel의 디코딩이 완료된다.

[0094] Now, the previous res_val is increased by remAbsLevel. As a final step, if the previously received sign_flag is 1, a negative sign may be assigned to res_val.

[0095] At this point, the residual value res_val is fully decoded and may be added to the predicted value (e.g., the predicted signal (64)) to form the restored sample.

[0096] 1.1.2 Derivation of Context Model

[0097] One approach to deriving a context model may be to have a value templateSum as a context classifier calculated as follows immediately before decoding the next sample: templateSum may be set as the sum of the absolute values ​​of the last N_TEMPLATE_SUM residual values ​​of the block (e.g., 3 or 2, 4, 5, 6 or any other number greater than or equal to them) (e.g., a sum measure, e.g., a normal sum or a weighted sum). However, other sum measures may be used, e.g., non-absolute and / or squared values ​​may be used. If the available residual values ​​are less than N_TEMPLATE_SUM (e.g., at the beginning of the block), they may be assumed to be 0 for the calculation of templateSum. For example, if the previously coded sample values ​​are 5, 8, and -13, 3_TEMPLATE_SUM may be determined as 5 + 8 + 13 = 26. In another example, if the third sample of the time block (140) is currently decoded and only two previously coded samples with values ​​5 and 8 are available, 3_template_SUM may be determined to be 5 + 8 = 13.

[0098] 1.1.2.1 Derivation of sig_flag Context Model

[0099] The context model index used for sig_flag may depend on the last received residual value ras_val_last (i.e., res_val at the position of the last decoded sample, e.g., the previously decoded residual sample value (80)) and may be set to one of three possible values ​​corresponding to the following cases: ras_val_last < 0, ras_val_last = 0, ras_val_last > 0.

[0100] 1.1.2.2 Derivation of sign_flag Context Model

[0101] The context model index used for sign_flag may depend on the last received residual value ras_val_last (i.e., res_val at the position of the last decoded sample, e.g., the previously decoded residual sample value (80)) and may be set to one of three possible values ​​corresponding to the following cases: ras_val_last < 0, ras_val_last = 0, ras_val_last > 0.

[0102] 1.1.2.3 Derivation of greaterX_flag context model

[0103] The derivation of ctxIdx_greaterX, which may be a context model index used for greaterX_flag, may depend on two values ​​numGreaterFlagsDecoded (e.g., indicating the number of greaterX_flags decoded for the current sample) and templateSum (e.g., a sum measure determined based on previously coded sample values, as described above), and may follow the following derivation rules:

[0104] ctxIdx_greaterX=b_maxㆍa + b

[0105] Here, a is a zero or greater integer set to numGtxFlagsCoded (numGtxFlagsCoded is zero or greater, e.g., based on or equivalent to numGreaterFlagsDecoded), clipped by the upper limit GTX_MAX_NUM_CTX_MODELS - 1 (e.g., 1), and b max is set to TEMPLATE_SUM_CLASSES_GRX (e.g., 2), and b is a value greater than or equal to 0, set to templateSum>>TEMPLATE_SUM_BITSHIFT_GRX, and is clipped by the upper limit TEMPLATE_SUM_CLASSES_GRX - 1.

[0106] 1.2 Sample-unit entropy coding, second method

[0107] The second method (or approach) is preferably used when inverse quantization is not performed in the decoder, but it may also be used in other scenarios.

[0108] First, the value borderCtxtSwitch may be set to either 0 or the number of transformation weights (e.g., the number of transformation coefficients). Additionally, the value absSumCoeffs may be initialized to 0.

[0109] Now, the coefficients (e.g., transformation coefficients (40)) of a block (e.g., time block (40)) may be decoded sequentially (in a loop), starting from the position following the last position within the temporally preceding block. After decoding each coefficient, if updateVal is non-negative, the value absSumCoeffs is updated by increasing it by updateVal. The value updateVal may first be set to the absolute value of the coefficient just decoded (e.g., previously decoded coefficient) and then decrease by CUTOFF_FOR_RICE + 1, where CUTOFF_FOR_RICE is a pre-set value (e.g., 4 or any other positive integer). The value absSumCoeffs may be used to derive a context model while decoding the coefficients.

[0110] Now, within the loop, each coefficient can also be decoded as follows.

[0111] The value res_val may be initialized to 0 or may represent the current coefficient to be decoded. Now, sig_flag may be received indicating that the current coefficient is not 0 (i.e., sig_flag == 1), and sig_flag may be context-modeled (e.g., using a single context model, as described above). If sig_flag is equal to 0, the current res_val may be set to 0, and the decoding of the current coefficient is completed. However, if sig_flag is equal to 1 (e.g., indicating that res_val is not 0), res_val may be incremented by 1, and sign_flag may be received (context-modeled, e.g., using a single context model, as described above) and stored for future use.

[0112] Now, the value numGreaterFlagsDecoded may be initialized to 0, or (e.g., context-modeled, see 1.2.2.1 below) greaterX_flag may be received, and then numGreaterFlagsDecoded may be set to 1. While greaterX_flag is equal to 1 and numGreaterFlagsDecoded is less than the pre-set qualifying parameter CUTOFF_FOR_RICE (e.g., 4 or any other integer value), the following steps may be executed in a loop: increment res_val by 1, receive and overwrite greaterX_flag, and increment numGreaterFlagsDecoded by 1. This loop is similar to variable-length unary decoding.

[0113] Now, if the last received greaterX_flag is equal to 1 (e.g., meaning the loop terminated due to numGreaterFlagsDecoded >= CUTOFF_FOR_RICE), res_val may be incremented by 1 one more time, and the remaining remAbsLevel may be decoded as follows.

[0114] First, a value riceParam may be calculated, which may vary depending on the current position within the block (e.g., rank) and the current value of absSumCoeffs (e.g., as described in 1.2.2.2). Now, remAbsLevel may be coded in two parts, namely, a variable-length unary code part (e.g., the first part (53a)) that generates q, and a fixed-length EP-coded part using riceParam bins (e.g., the remainder part (53b)) that generates r, which is interpreted as a non-negative integer. The bins signaling the unary code may be context-modeled such that the context model index is initialized to 0 and then incremented by 1 after each received bin, for example, up to a pre-set threshold (e.g., MAX_NUM_CTXT_RICE - 1, MAX_NUM_CTXT_RICE = 8, or any other integer value). Finally, remAbsLevel and It can also be set as the sum of and r.

[0115] Now, the previous res_val may be increased by remAbsLevel. As a final step, if the previously received sig_flag is 1, res_val may be assigned a negative sign.

[0116] At this point, the coefficient value res_val is fully decoded (additionally, absSumCoeffs may be updated as previously described), and the next coefficient in order is decoded.

[0117] 1.2.1.1 Derivation of greaterX_flag Context Model

[0118] The context model used to code greaterX_flag may also be identified by the value greaterXCtxId.

[0119] Before the first greaterX_flag is received, if the position of the current coefficient within the block is smaller than borderCtxtSwitch, the value greaterXCtxId may be set to 0, and otherwise, greaterXCtxId may be set to 1. For example, the second context for decoding a sequence of excess bins may depend on whether the current sample position (17a) is separated by less than K sample positions from a previously decoded time block in the reverse order of the sample sequence (e.g., a distance measured toward the left from the sample position (17a) in FIG. 2).

[0120] Now, after each greaterX_flag is received, the value greaterXCtxId may be increased by 2 while numGreaterFlagsDecoded <= MAX_RANGE_GTX_SEP_CTXT (e.g., 6 or any other integer value).

[0121] 1.2.1.2 Derivation of the riceParam value

[0122] The signal-adaptive value riceParam may depend on the preceding value absSumCoeffs (a value updated by increasing by the absolute value of the coefficient just decoded, e.g., a measure of the absolute sum of the set sample values ​​of all preceding sample positions) and the number of coefficients already decoded (indicated by numCoeffsForSum, e.g., coefficients of the same block belonging to the time block (140)) as follows. The value riceParam may be initialized to 1. Now, absSumCoeffs may be repeatedly compared with an ascending sequence of thresholds, and riceParam may be increased by 1 each time a threshold is exceeded. The thresholds may be proportional to numCoeffsForSum (e.g., numCoeffsForSum*a, e.g., a belonging to [2, 5, 15]). In other words, riceParam may represent a classification index of the ratio of absSumCoeffs and numCoeffsForSum.

[0123] 1.3 Block-based Entropy Decoding

[0124] In contrast to the sample-based coding described above, block-based coding may include a transformation step applied to the entire residual block of samples (i.e., the difference between the original block and the predicted block) (e.g., from the time domain to the frequency domain for encoding, and vice versa for decoding) and binarization involving all (e.g., quantized) residual samples of multiple samples or even blocks. Different coding methods (e.g., quantization, binarization, entropy coding, etc.) may be applied to different scenarios.

[0125] Specifically, while decoding blocks of samples, a flag may be received indicating whether or not to use a block-based transformation, such as the Discrete Cosine Transform. Different entropy coding methods are proposed depending on this scenario.

[0126] 1.3.1 Binarization and Coding Methods of Blocks Including Block-Based Transformations

[0127] As previously explained, in block-unit coding, there may be no intermediate restoration of samples during decoding (e.g., the restoration of one sample of a time block (140) may not be completed before the decoding of another sample of the same time block (140) begins), so all residual samples (or transformation factors) of the block may be decoded before the restoration step.

[0128] First, a value endPos is received representing a first sample position (e.g., a preset rank (37)) in which a zero coefficient (e.g., a transform coefficient having a value of 0) occurs first within a block (e.g., a block of transform coefficients) and is subsequently followed by only more zero coefficients for the remainder of the block (e.g., in scan order (39)) (see, for example, description of 1.3.1.1). This may be advantageous, for example, if an energy compression transform (e.g., DCT) is applied to the residual before quantization and encoding. In other words, the coefficients at positions (or ranks) from endPos to the end of the block (the rightmost one, e.g., in scan order (39)) can be set to 0 in the decoder without requiring additional coding.

[0129] Now, the remaining coefficients of the block may be decoded sequentially as follows in reverse order (e.g., in the reverse direction of the scan order (39)) starting from position endPos - 1 and ending at position 0 (e.g., the first coefficient of the scan order (39)).

[0130] Before decoding each coefficient, the value templateClassIdx may be derived (see description 1.3.1.3). The value res_val is initialized to 0 and may represent the current coefficient to be decoded. Now, sig_flag may be received indicating that the current coefficient is not 0 (i.e., sig_flag == 1), and sig_flag may be context-modeled (see 1.3.1.4). If sig_flag is equal to 0, the current res_val may be set to 0 and the decoding of the current coefficient may be completed. However, if the current sample position is equal to endPos - 1 and is greater than 0 (e.g., rank or position in the range from 1 to endPos-1), sig_flag may be inferred (though not explicitly transmitted), because the encoder guarantees that the coefficient of position endPos - 1 is not 0 when endPos is greater than 0, so transmitting sig_flag in this case would be redundant.

[0131] Next, if sig_flag is equal to 1, res_val may be incremented by 1, or sign_flag may be received (e.g., context modeled, e.g., using a single context model) and stored for future use.

[0132] Now, the value numGreaterFlagsDecoded may be initialized to 0, (e.g., context-modeled, see 1.3.1.5) greaterX_flag may be received, and numGreaterFlagsDecoded (e.g., indicating the number of greaterX_flags decoded so far for the coefficient parameter currently being decoded) may subsequently be set to 1. While greaterX_flag (e.g., subsequently received) is equal to 1 and numGreaterFlagsDecoded is less than the qualifying parameter maxNumGrXFlags, the following steps may be executed in a loop: increment res_val by 1, receive and overwrite greaterX_flag, and increment numGreaterFlagsDecoded by 1. This loop is similar to variable-length unary decoding.

[0133] If greaterX_flag is equal to 0, res_val may be set to X.

[0134] Now, if the last received greaterX_flag is equal to 1 (e.g., meaning the loop terminated due to numGreaterFlagsDecoded >= maxNumGrXFlags), res_val may be incremented by 1 one more time and the remaining remAbsLevel may be decoded as follows.

[0135] First, the values ​​remAbsLevel, log2NumElemNextGroup, and ctxIdx may all be initialized to 0. Now, remAbs_flag is received using ctxIdx as the context model identifier. If remAbs_flag is equal to 0, decoding of remAbsLevel (which is equal to 0 at this point) may be completed. However, if remAbs_flag is not equal to 0, remAbsLevel, log2NumElemNextGroup, and ctxIdx may all be incremented by 1. Now, remAbs_flag may be received in a loop using ctxIdx as the context model identifier. The loop may be terminated if a bean of 0 is received. Inside the loop, for each remAbs_flag equal to 1, the following steps may be executed: remAbsLevel 1< <log2NumElemNextGroup만큼 증가시키고, log2NumElemNextGroup을 1만큼 증가시키고, ctxIdx를 1만큼 증가시킨다. 마지막으로, 루프가 종료된 후, log2NumElemNextGroup개의 빈이 EP 코딩(예컨대, 지수 골롬 코딩)을 이용하여 수신되고, 정수로 해석되어 remAbsLevel에 더해지며, 이에 따라 remAbsLevel의 디코딩이 완료된다.

[0136] Now, the previous res_val may be increased by remAbsLevel. As a final step, if the previously received sig_flag is 1, a negative sign is assigned to res_val.

[0137] At this point, the coefficient value res_val is fully decoded, and the next coefficient in sequence is decoded.

[0138] 1.3.1.1 Decoding of endPos

[0139] The position value endPos may be signaled in two stages. First, a value idxLastSubblock is received, which indicates the index of the (virtual) subblock where endPos is located (e.g., a rough rank index) (as further described in 1.3.1.2) (the block of the transformation factor may be subdivided into subblocks that can be indexed by the rough rank index). Second, a value offset is received, which indicates the position within the previously signaled subblock (e.g., a detailed rank offset) (e.g., pointing to a pre-set rank relative to a single rough rank position).

[0140] (Virtual) subblocks may have a fixed size. Using the coding parameter LOG2_SUBBLOCK_SIZE_LAST (e.g., 2), this size may be defined as SUBBLOCK_SIZE_LAST = 1<< LOG2_SUBBLOCK_SIZE_LAST.

[0141] The value offset may be EP-coded using LOG2_SUBBLOCK_SIZE_LAST bins (e.g., 2 bins for a subblock of size 4) that cover the entire range of SUBBLOCK_SIZE_LAST possible values.

[0142] Specifically, endPos may be initially set to (idxLastSubblock + 1) * SUBBLOCK_SIZE_LAST (e.g., SUBBLOCK_SIZE_LAST = 4) and then reduced by a value offset. The value offset (e.g., detailed rank offset) may define an offset in the reverse direction of the scan order (39) or an offset following the scan order (39).

[0143] 1.3.1.2 Decoding of idxLastSubblock

[0144] The value idxLastSubblock (e.g., approximate rank index) may be decoded using unary codes. The value maxNumBins may be pre-set or may represent the maximum number of unary bins to receive. This is possible because idxLastSubblock is limited by the block size (the maximum number of subblocks may depend only on the block size known to the decoder at this point). Note that since explicitly signaling the final candidate is redundant, maxNumBins may be set to the maximum number of unary-coded candidate indices minus 1 (for example, if there are a total of 4 candidates and 3 bins of 0 have already been decoded, meaning none of the first 3 candidates were selected by the encoder, only one candidate remains, so there is no need to transmit an additional bin of 1).

[0145] First, the value idxLastSubblock may be initialized to 0, and then context-modeled beans (e.g., using idxLastSubblock as a context index) may be received in the loop up to a maximum of maxNumBins beans (e.g., the maximum number of unary coded candidate indices minus 1). For each received bean, if the last received bean is equal to 0, idxLastSubblock may be incremented by 1 (thereby changing the context model that may be used to decode the next bean), and the loop terminates when a bean with a value of 1 is received (idxLastSubblock is not incremented). For example, if three beans with a value of 001 are received, idxLastSubblock may be incremented twice (in this case, the context model may be changed a total of two times due to receiving two 0 beans), and the loop terminates after receiving a bean with a value of 1.

[0146] However, if the block size exceeds a specific threshold (i.e., if the number of candidates for idxLastSubblock and consequently the number of unary bins exceeds a specific threshold), the above procedure may be modified. Instead of stopping after maxNumBins bins, the loop may terminate earlier, i.e., when the current value of idxLastSubblock exceeds a preset value MAX_VAL_UNARY (e.g., 32 or any other number, e.g., another power of 2), and a remainder value offsetVal may be received in the form of truncated binary code to signal which of the remaining candidates n = maxNumBins + 1 - MAX_VAL_UNARY selected by the encoder is. Finally, idxLastSubblock may be incremented by offsetVal and the decoding of idxLastSubblock is completed.

[0147] 1.3.1.3 Derivation of templateClassIdx

[0148] First, the value templateSum may be calculated as the sum of the absolute values ​​of the coefficients of the last decoded preset number (TEMPLATE_SIZE, e.g., 3) (e.g., a measure of the sum of the absolute values ​​of previously decoded transformation coefficients within the template, covering, e.g., the preset number of rank positions prior to the transformation coefficient currently being decoded in the scan order). If there are fewer available previously coded coefficients (e.g., near block boundaries), the sum may be calculated using only the available values. Since the value templateSum is the sum of absolute values, it may be non-negative.

[0149] Now, with TEMPLATE_CLASS_THR set to a preset value (e.g., 1), templateSum <= templateClassIdx * TEMPLATE_CLASS_THR may be set to the smallest possible value (e.g., thresholding the absolute sum measure). However, templateClassIdx may always be smaller than the preset value NUM_TEMPLATE_SUM_CLASSES (e.g., 3 or any other integer).

[0150] 1.3.1.4 Derivation of sig_flag Context Model

[0151] The context model index sigCtxId used to signal sig_flag may depend on the position pos of the current coefficient within the block (e.g., the rank of the current transformation coefficient (40d)) and the previously described value templateClassIdx. First, sigCtxId may be initialized to 0 or, if applicable, set to the smallest possible value such that pos > bordersSig[sigCtxId], and bordersSig may be a pre-configured array containing entries representing classification boundary lines (e.g., {0, 1, 2, 3, 7, 11, 15, 23, 31, 38, 46, 54, 62, 78, 94}).

[0152] Now, with templateClassIdx being one of the NUM_TEMPLATE_SUM_CLASSES candidate values ​​(i.e., templateClassIdx is within the range [0, NUM_TEMPLATE_SUM_CLASSES-1]), sigCtxId may be incremented by templateClassIdx after first multiplying by NUM_TEMPLATE_SUM_CLASSES.

[0153] 1.3.1.5 Deriving the greaterX_flag context model

[0154] The context model index greaterXCtxIdx used to signal greaterX_flag may vary depending on the position pos of the current coefficient.

[0155] First, greaterXCtxIdx may be initialized to 0, or, if applicable, set to the smallest possible value such that pos > bordersGreaterX[greaterXCtxIdx], and bordersGreaterX may be a pre-configured array (e.g., {0, 1, 2, 3, 7, 11, 15, 23}) containing entries representing classification interval boundaries.

[0156] The above description is now extended by presenting additional embodiments in the form of claims below. However, before that, the description continues with the presentation of a possible framework or codec in which the embodiments described above, as well as the embodiments further described below, may be incorporated. However, many details described in this framework are optional when combined with any of the embodiments described above or the embodiments described below. More precisely, the framework is described with reference to FIG. 9, which illustrates an encoder for encoding a multi-channel digital signal (14) into a data stream (16) and a decoder (12) for decoding the multi-channel digital signal (14) from the data stream (16). This description of FIG. 9 should be understood as the presentation of new embodiments of the present application obtained by adopting all details / functions described with reference to FIG. 9 or omitting some of the details / functions described with reference to FIG. 9 when any of the embodiments described above or any of the embodiments described below are combined with the decoder (12) or encoder (10) of FIG. 9. Although these “optional” features of FIG. 9 are sometimes explicitly identified as optional for combinations of the embodiments described above and the embodiments described below, the aforementioned possible combinations of the embodiments described above / below and the description of FIG. 9 should not be limited to these explicitly identified variations of FIG. 9 in that they omit certain features.

[0157] In FIG. 9, a multi-channel digital signal (14) is illustrated as an array of samples, which are illustrated as small squares (18). Each row / line corresponds to a specific channel of the multi-channel digital signal (14). Each channel of the signal (14) may be associated with a respective channel ID, and FIG. 9 illustrates these channels aligned along a vertical axis (20) according to their channel IDs, so the vertical axis (20) corresponds to the “source” channel axis (20). Since the horizontal axis (22) corresponds to time, samples (18) forming a column or aligned horizontally are samples belonging to a single common moment in time. A set / column of samples (18) at the same temporal location is illustrated as 24 in FIG. 9.

[0158] Therefore, each channel forms a digital time-varying signal or a time / amplitude or time-versus-amplitude signal. The multi-channel digital signal m may have been acquired by at least one of electrocardiography, electroencephalography, electromyography, or seismic measurement. In other words, the multi-channel digital signal may be physiological waveform data such as an electroencephalogram (EEG) signal, an electrocardiogram (ECG) or electromyogram (EMG) signal, or seismic waveform data. However, each channel / signal may alternatively be other types of waveform signal data such as scalar media data such as an audio signal, and the signal (14) may be a multi-channel audio signal.

[0159] FIG. 9 illustrates an option in which the signal (14) is not coded directly, i.e., in the original domain (26), but is coded in a so-called “coded domain” (28), which may differ from the original domain (26) by one or more of 1) channel conversion, 2) channel permutation, and 3) inter-channel time mutual alignment. When channel conversion is applied, the channel conversion converts a set or column (24) of samples from the domain (26) to the domain (28) at each sample time moment. Thus, in the domain (28), the sample pitch and the time axis are the same as in the domain (26), but the meaning of the channels is different, that is, the “source” channels of the domain (26) become the channels converted in the domain (28). Thus, the vertical axis of FIG. 9 for the domain (28) is indicated as 32. Note that since channel conversion may not change the number of channels, the same number of channels may exist in the domain (26) and the domain (28), but other approaches are also possible. Generally, channel conversion will aim to reduce redundancy and concentrate the energy of the channels into a smaller number of channels in the domain (28). As previously mentioned, channel conversion is optional. Thus, in a general sense, the channels in the domain (28) are referred to as “coded channels” to distinguish them from the “original” or “source” channels of the digital signal (14) in the domain (26). Permutation is also optional and may be used in combination with channel conversion or without channel conversion. When used in combination with channel conversion, permutation may be executed before and / or after channel conversion to permut / align the source channels before conversion and to permut / align the coded channels after channel conversion. Channel conversion may be a DCT, DST, FFT, or any other conversion. Inter-channel time alignment is also optional and may be understood as a constant time alignment between source channels or coded channels.

[0160] A module in the encoder (10) that performs one or more of channel conversion, channel permutation, and inter-channel temporal alignment is indicated by block (34) in FIG. 9. Additional information (36) may be used to signal information regarding one or more of the following: 1) channel conversion used, 2) information regarding permutation(s) between source channels and / or coded channels, and 3) information regarding temporal alignment / delay between source channels or coded channels, wherein temporal alignment may be limited to the full sample precision. The corresponding block (38) of the decoder (12) performs the reverse step, i.e., performs one or more of the following: 1) channel re-conversion, 2) re-permutation of source channels and / or coded channels, and 3) temporal re-alignment of source channels or coded channels. Note that if channel conversion is not performed, the coded channels are actually identical to the source channels, but are temporally aligned or differently aligned due to permutation. Block (38) may also be controlled by the aforementioned additional information (36).

[0161] Therefore, “actual coding” relates to the coded channels of the domain (28). In the coded domain (28), the coded channels are depicted as lines or rows of samples (40) extending along the time axis (22) in FIG. 9, and the coded channels are depicted up and down along the coded channel axis (32)—potentially aligned according to the coded channel IDs associated with them—forming an array of samples (40). In other words, FIG. 9 illustrates the case where the number of source channels is equal to the number of coded channels, but the number may be different. Also, when channel conversion is used, there is no longer a clear association between the source channels on one hand and the coded channels on the other, but the temporal association is maintained. For each sample (24) located at the same temporal position, there exists a set (42) of samples (40) located at the corresponding same temporal position of the coded channels, and the set (42) of the domain (28) is a single column, and if time alignment is applied, it may be a set of samples horizontally offset from each other according to the time alignment. In the case of FIG. 9, since it is assumed that such time alignment is not performed, both the set (42) and the set (24) are pure columns in the time / channel representation.

[0162] Actual coding is executed in units of so-called time blocks (30). The term “time block” (30) is used to denote not only the temporal portion of a set of coded channels, i.e., a multi-channel signal of the domain (28), but also the temporal portion of a specific coded channel. That is, for each time block (30), each coded channel has a time block such as the block (140) illustrated for some time blocks (30c), and these are located at the same temporal position. Coding is executed sequentially along these blocks (140), circulating the blocks (140) in units of time blocks (30), and following a coding / decoding sequence that circulates the blocks of coded channels located at the same temporal position along the channel order corresponding to the order of coded channels along the axis (32). This coding / decoding sequence is illustrated as 60 in FIG. 9. That is, if the time block (140) is the block currently being coded / decoded, the previously decoded / encoded time blocks include all preceding time blocks of all coded channels, as well as time blocks at the same temporal position of the coded channels preceding the coded channel (92) of the time block (140) in channel order. These previously coded / decoded time blocks and samples thereof are shown in shade in FIG. 9. In this regard, it should be noted that only one time block (140) is explicitly shown in FIG. 9 to reduce complexity in FIG. 9. Accordingly, in this specification, reference numeral 140 is sometimes used to indicate the time block currently being encoded / decoded, or to represent all time blocks. Also, as shown in FIG. 9, the division of the signal (14) into time blocks (30) and time blocks (140), respectively, may be performed such that these blocks (30) and blocks (140) do not overlap each other.

[0163] Actual coding in units of time blocks (140) is executed predictively. That is, the encoder (10) includes a block predictor (62) that predicts samples of the time block (140) currently being coded to generate a prediction signal (64), and the prediction residue (66) formed by subtracting the actual sample value of the time block (140) formed in the subtractor (68) from the predicted sample of the prediction signal (64) is coded into a data stream (16) by a residue coder (70). Residual coding in the residue coder (70) may or may not include coding errors due to quantization. In either case, the block predictor (62) uses a recoverable version available from previously coded time blocks to obtain the prediction signal (64). This recoverable version (72) may be derived from the encoder (10) by a residual decoder (74) that inverts potential coding losses, such as quantization appearing in the residual signal (76) coded in the data stream (16), by inverse quantization, etc., and an adder (78) that sums the prediction signal (64) and the recoverable residual signal (80) obtained by the residual decoder (74).

[0164] The decoder (12) decodes the coded channels from the data stream (16) in a corresponding manner, that is, in units of time blocks (30) or each time block (140), and decodes using predictive decoding. To this end, the decoder (12) includes a residual decoder (82), an adder (84), and a block predictor (86) that correspond to the elements (74), (78), and (62) of the encoder (10) and are connected to each other in the same manner. That is, the residual decoder (82) derives a recoverable residual signal (80) for the time block (140) currently being decoded from the residual signal (76) of the data stream (16), which is then summed in the adder (84) with the predictive signal (64) derived for the time block (140) by the block predictor (86) based on the recovered version (72) of the previously decoded time blocks. Accordingly, the output of the adder (84) generates a restored version (72) of the time block (140) currently being decoded, and when the time blocks of coded channels are traversed in this manner along the coding / decoding order (60) to restore the coded channels in the coded domain (28), it becomes part of the pool of already decoded samples of the previously decoded time blocks.

[0165] To enable a high level of random access functionality, some of the time blocks (30) may be coded in a random access manner, which means that the coded channels within them are coded independently of the previous time blocks (30). For example, assume that time block (30b) and time block (30e) are random access time blocks. Then, no time channel block (140) within time block (30b) and time block (30e) will depend on any preceding time block (140), for example, no time block within time block (30a) will form a basis of coding dependency for any time channel block (140) within time block (30b), and no time channel block (140) within time blocks (30a) through (30d) will form a basis of coding dependency for any time channel block (140) within time block (30e). Therefore, in other words, coding dependency is restricted so as not to extend beyond the boundaries of random access time blocks (30b and 30e) to any preceding time block (30). This restriction may also apply to intermediate time blocks (30c to 30d) between random access time blocks (30b and 30e), which may not depend on the leading block among the random access time blocks (30b and 30e), where any time block preceding block (30b). Thus, the leading time boundary of the random access time blocks (30b and 30e) is indicated by a bold line in FIG. 9.

[0166] Additionally, the coding of the coded channels may interrupt or limit inter-channel dependencies by coding one or more of the coded channels as random access coded channels, and accordingly, the coding dependencies of these random access coded channels, or even the coding dependencies of these random access coded channels and intermediate coded channels between them, are limited so as not to extend beyond these random access coded channels to any coded channel preceding the corresponding random access coded channel in the channel order along the axis (32). These two random access coded channels (88a and 88b) and the associated inter-channel dependency boundary are illustrated in FIG. 9.

[0167] The block predictors (62 and 86) of the encoder (10) and decoder (12) each operate synchronously, that is, they generate the same prediction signal (64) based on previously encoded / decoded samples of the previously encoded / decoded time block (140). On the encoder (10) side, the prediction for a specific time block (140) may involve or be determined by one or more prediction parameters. These prediction parameters may be determined on the encoder side based on rate / distortion optimization. These prediction parameters (90) are encoded into the data stream (16), decoded from the data stream (16), and used by the block predictor (86) to execute the same prediction.

[0168] The encoder (10) and decoder (12) may support more than one prediction mode. For example, the encoder (10) and decoder (12) may support an intra prediction mode (which may also be called a block copy mode) in which the time block (140) currently being encoded / decoded is predicted based on the recoverable sample values ​​of previously encoded / decoded time blocks of the same coded channel to which the time block (140) currently being encoded / decoded belongs, i.e., the coded channel (92) in the example of FIG. 9. Additionally or alternatively, the encoder (10) and decoder (12) may support an inter prediction mode (which may also be called a cross-channel prediction mode) in which the time block (140) currently being encoded / decoded is predicted based on the recoverable sample values ​​of previously encoded / decoded time blocks of coded channels preceding the coded channel (92) to which the time block (140) currently being encoded / decoded belongs in the coding order (32). Additionally or alternatively, there may exist a mixed prediction mode obtained by both the restored / recoverable sample values ​​of previously encoded / decoded time blocks of the coded channel (92) itself and the restored / recoverable sample values ​​of coded channels preceding the coded channel (92) in the channel order along the axis (32). In addition, there may exist a time block (140) that is encoded without any prediction in the encoder (10) and decoded without any prediction in the decoder (12), for example, first time blocks within a tile (94) created by separating time blocks from each other by a random access boundary (96) on one side and a random access channel boundary (98) on the other. This corresponds to the prediction signal (64) being set to 0, which may form an additional mode which may be called a bypass mode.Additionally or alternatively, other modes may exist, such as deriving a DC predictor or a linear function predictor for block (64) based on the previous samples of block (140). Accordingly, the prediction parameter (90) may include a prediction mode flag or prediction mode indicator indicating the prediction mode to be used for the time block (140) currently being encoded / decoded, and optionally one or more parameters parameterizing the prediction mode to be used for the time block (140) currently being encoded / decoded.

[0169] The fact that the aforementioned coding dependency must not cross either of the boundaries (96 and 98) may arise not only from the sample prediction function just described of the block predictor (62 and 86), respectively, but optionally from other mechanisms. For example, parameters such as the aforementioned prediction parameter (90) for a specific time block (140) may arise from parameter prediction based on coding parameters transmitted to the data stream (16) for any previous time block, or from context derivation for context-adaptive entropy coding / decoding of any coding parameter such as the prediction parameter (90) for the time block (140) or any other additional information such as additional information (76 and 36) based on any coding parameter transmitted to the data stream (16) for any preceding time block.

[0170] In summary, the encoder (10) converts the multi-channel signal (14) into a coded domain (28) and then encodes the multi-channel signal (14) by coding the coded channels into a data stream (16) using the block-unit and prediction method just described, and the decoder (12) decodes the coded channels of the coded domain (28) from the data stream (16) using the corresponding block-unit and prediction method and then obtains the multi-channel signal (14) in its original form (26) based on the coded channels of the coded domain (28) by the segment (38). As previously described, channel conversion is optional, and if channel conversion is not used, each sample (40) of the coded domain (28) actually corresponds to one sample (18) of the original domain (26). Additionally, if time mutual alignment is not used, each sample (40) corresponds exactly to the sample (18) of the original domain (26) at exactly the same time moment, or in other words, all samples (40) that are at the same temporal position in the coded domain (28) are also maintained at the same temporal position in the original domain (26).

[0171] As previously mentioned, FIG. 9 represents only one possible “framework” in which the previously described embodiments and the embodiments described below may be integrated. Many modifications may be made in relation to FIG. 9, and some of these modifications may be mentioned in subsequent descriptions in relation to specific embodiments described below, but these modifications should be treated as applicable to other embodiments described below. Also, finally, without being treated as forming an exclusive list of additional possible modifications to the description of FIG. 9, it should be noted that the time block (30) may have a different block length instead of having the constant length shown in FIG. 9, unlike that shown in FIG. 9. For example, the encoder (10) may determine the length of the block (30) and signal the block length of the block (30) (and the block length of the corresponding time block (140) of the coded channels) within the data stream (16). Additionally, although not previously described, the residual coder and residual decoder (70 and 82) may use transform coding / decoding to transmit the residual signal (76) in the data stream (16). That is, the residual signal (80) may be transmitted from the transform domain to the data stream (16) by the transform coefficients of the residual signal (76). The transform domain may be a DCT, DST, or FFT. The transform may be non-overlapping, meaning only the residual signal (80) within the block (140) may be transformed and the re-transformation may cover only the residual signal (76), and / or non-windowed, meaning the residual signal (80) may be transformed without using any transform window to temporally shape the residual signal (80) before transformation.The transformation domain, that is, the transformation from the time domain to the transformation domain used by the encoder to transform the predicted residual signal (80) to be coded, and the corresponding retransform from the transformation domain to the time domain used by the decoder to derive the predicted residual signal (80), or the transformation may be selected from a set of available transformations and may include, for example, one or more of the following: 1) one or more DCTs, 2) one or more DSTs, and 3) an identity transform in which the predicted residual signal (80) is coded directly into the data stream (14) in the time domain. Some deblocking processing may be used to prevent blocking artifacts. Alternatively, if an overlapping transformation is used, an overlap-add processing may be used with the retransformation of the time blocks immediately preceding and following the same coded channel to fully restore the residual signal (76) of the current time block (140). In addition to these transformation-(residual)-coded blocks, there may exist time blocks (140) coded using a second-sample unit prediction of residual samples within the residual block (66), in addition to or alternatively to block prediction by the block predictor (62 / 86)—which may be referred to as a first-sample prediction. For example, the residual sample of the current sample may be predicted by already decoded residual sample values ​​that precede in the sample coding order within the block (66 or 80), and then corrected by a second-predicted residual sample decoded from the data stream (16). The second-predicted residual samples for such blocks may be coded into the data stream in block units in the transformation domain or in sample units in the time domain.

[0172] Although some aspects have been described in the context of a device, these aspects also represent descriptions of corresponding methods, whereby a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of a method step also represent descriptions of corresponding blocks or items or features of corresponding devices. Some or all of the method steps may be executed by (or using) a hardware device, such as 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 a device.

[0174] Additional note:

[0175] Additionally, it should be noted that the individual aspects described in this specification may be used individually or in combination. Accordingly, details may be added to each of the other individual aspects without adding details to a single aspect.

[0176] Furthermore, features and functions disclosed herein in relation to methods may also be used in devices (devices configured to perform such functions). Furthermore, any features and functions disclosed herein in relation to devices may also be used in corresponding methods. In other words, the methods disclosed herein may be complemented by any features and functions described in relation to devices.

[0177] Additionally, any features and functions described in this specification may be implemented in hardware or software, or using a combination of hardware and software, as described in the “Implementation Alternatives” section below.

[0179] Implementation Alternatives:

[0180] Depending on specific implementation requirements, embodiments of the present invention may be implemented in hardware or software. Implementation may be performed using a digital storage medium, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or FLASH memory, which stores electronically readable control signals and cooperates (or can cooperate) with a programmable computer system to execute each method. Accordingly, the digital storage medium may be computer-readable.

[0181] Some embodiments according to the present invention include a data carrier having an electronically readable control signal capable of cooperating with a programmable computer system to execute one of the methods described herein.

[0182] Generally, embodiments of the present invention may be implemented as a computer program product having program code, and the program code operates to execute one of the methods when the computer program product is executed on a computer. The program code may be stored, for example, in a machine-readable carrier.

[0183] Other embodiments include a computer program for executing one of the methods described herein stored in a machine-readable carrier.

[0184] In other words, one embodiment of the method according to the present invention is a computer program having program code for executing one of the methods described herein when the computer program is executed on a computer.

[0185] Accordingly, additional embodiments of the methods according to the present invention are a data carrier (or digital storage medium or computer-readable medium) on which a computer program for executing one of the methods described herein is recorded. The data carrier, digital storage medium or recording medium is generally tangible and / or non-transient.

[0186] Accordingly, a further embodiment of the method according to the present invention is a sequence of data streams or signals representing a computer program for executing one of the methods described herein. The data stream or sequence of signals may be configured to be transmitted, for example, via a data communication connection, such as the Internet.

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

[0188] Additional embodiments include a computer installed with a computer program for executing one of the methods described herein.

[0189] Further embodiments according to the present invention include a device or system configured to transmit (e.g., electronically or optically) a computer program for executing one of the methods described herein. The receiver may be, for example, a computer, a mobile device, a memory device, etc. The device or system may include, for example, a file server for transmitting the computer program to the receiver.

[0190] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array may work in cooperation with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware device.

[0191] The device described in this specification may be implemented using a hardware device, using a computer, or using a combination of a hardware device and a computer.

[0192] Any component of the device described in this specification or any component of the device described in this specification may be implemented at least partially in hardware and / or software.

[0193] The methods described in this specification may be executed using a hardware device, using a computer, or using a combination of a hardware device and a computer.

[0194] Any of the methods described in this specification or any component of the device described in this specification may be executed at least partially by hardware and / or software.

[0195] The embodiments described above are merely for illustrating the principles of the invention. It is understood that modifications and variations of the configurations and details described herein will be apparent to those skilled in the art. Accordingly, it is intended that the invention be limited only by the scope of subsequent claims, rather than by specific details presented in the description and commentary of the embodiments herein.

[0196] The description now continues in relation to the embodiments / claims described below, which were previously announced.

Claims

Claim 1 In a decoder (12) for decoding a digital time-varying signal (92) from a data stream (16), the residual sample value (80) for the current sample position (17a) of each sample-wise entropy-coded time block is decoded from the data stream (16), and the prediction sample value (64) for the current sample position (17a) is corrected using the residual sample value (80), thereby sequentially determining a predetermined sample value (13) for the sample position (17) of each sample-wise entropy-coded time block, thereby decoding each sample-wise entropy-coded time block among the temporal blocks (140) of the digital time-varying signal (92), the data The decoding of the digital time-varying signal (92) from the stream (16) in time blocks is configured to decode the residual sample value (80) for the current sample position (17a) of each time block (140) that is entropy-coded in sample blocks comprises decoding the first part (23a) of the binarization of the residual sample value (80) in a binary context-adaptively entropy decoding (21) and decoding the remaining part (23b) of the binarization from the data stream (16), wherein the decoder (12) comprises one or more previous sample positions (17b) of each time block that is entropy-coded in sample blocks,A decoder configured to derive a context (25) for decoding at least one bin of the first part (23a) using the above-mentioned preset sample value (13) of c). Claim 2 A decoder configured to derive a first context for decoding a first predetermined bin (27a) of a first part (23a) by using the sum of absolute values ​​of the predetermined sample values ​​(13) of the preceding sample positions (17b, c) of the sample-unit entropy-coded time block located within a template (31) having a predetermined relative time position for the current sample position (17a), and / or the zeroness and / or sign of the predetermined sample values ​​(13) of the preceding sample positions (17b, c) of the sample-unit entropy-coded time block. Claim 3 In paragraph 2, the first set bin (27a) is a decoder that is a significance flag indicating whether the residual sample value (80) is 0. Claim 4 A decoder configured to derive a second context for decoding a sequence of greater-bins (27b-e) of the first part (23a) according to any one of claims 1 to 3, using the second context to entropy decode at least one bin, or using the second context to entropy decode at least one bin, and wherein each of the greater-bins (27b-e) is configured such that, when the rank of each greater-bin (27b-e) is x, the residual sample value (80) is greater than x+const. Claim 5 A decoder configured to derive the predicted sample value (64) for the current sample position (17a) by using a template (31) of the preceding K sample positions (17) of the current sample position (17a) in a sample order in which the pre-set sample value (13) for each time block entropy-coded in the sample unit at any one of claims 1 to 4 is sequentially decoded by forming a weighted sum of the pre-set sample value (13) of each time block entropy-coded in the sample unit at K sample positions (17). Claim 6 In claim 5, a second context for decoding a sequence of greater-bins (27b-e) of the first part (23a) is configured to be derived based on whether the current sample position (17a) is separated by less than K sample positions (17) from the previously decoded time block in reverse order of the sample sequence, and each of the greater-bins (27b-e) indicates whether the residual sample value (80) is greater than x+const, where x is the rank of each greater-bin (27b-e). Claim 7 A decoder configured to determine a rice parameter by quantizing or thresholding an absolute sum measure for the preset sample value (13) of all preceding sample positions (17b, c) of the sample-unit entropy-coded time block in any one of claims 1 to 6 when decoding the remainder part (23b) of the binarization from the data stream (16), and to decode a rice code using the rice parameter. Claim 8 In claim 7, the rice code includes a unary code quotient portion, and the decoder (12) is configured to decode the bins of the unary code quotient portion by context-adaptive binary entropy decoding. Claim 9 In claim 8, the unary code quotient portion is a truncated unary code such that the number of codewords of the truncated unary code is limited to a predefined maximal quotient value, and when the unary code portion of the rice code corresponds to a predefined codeword associated with the predefined maximal quotient value, there is no fixed length remainder portion of the rice coding, and the decoder is configured to decode the fixed length remainder portion having a length corresponding to the rice parameter when the unary code portion of the rice code does not correspond to a predefined codeword associated with the predefined maximal quotient value. Claim 10 In claim 9, the decoder is configured to decode an exponential Golomb code as an extension of the rice code when the unary code portion of the rice code corresponds to the pre-set codeword associated with the pre-set maximum quotient value. Claim 11 A decoder configured to, in any one of claims 1 to 10, to decode each time block entropy-coded in sample units among the time blocks (140) of the digital time-varying signal (92), to obtain a prediction signal (64), predict each time block entropy-coded in sample units among the time blocks (140) using one selected from a set of prediction modes, and to correct the prediction signal (64) using the preset sample value (13) for each sample position (17) of each time block entropy-coded in sample units at each sample position (17) of each time block entropy-coded in sample units. Claim 12 A decoder (12) for decoding a digital time-varying signal (92) from a data stream (16), wherein, among the transform coefficients of a coefficient-wise-entropy-coded time block, a predetermined rank (37) is derived from the data stream (16) indicating that the transform coefficients having a rank greater than the predetermined rank (37) are zero according to a scan order (39) defined between the transform coefficients, and sequentially decodes the transform coefficients having a rank smaller than the predetermined rank (37) in reverse with respect to the scan order (39), and performs re-transformation on the transform coefficients of each coefficient-wise-entropy-coded time block to obtain a time-domain residual signal (45), and uses the time-domain residual signal (45) to the coefficient unit By correcting the prediction signal (64) for each entropy-coded time block and restoring each time block entropy-coded in coefficient units, each time block entropy-coded in coefficient units among the time blocks (140) of the digital time-varying signal (92) is decoded to decode the digital time-varying signal (92) from the data stream (16) in units of time blocks, and the decoder (12) is configured to decode a coarse rank index (47a) that indexes one of a plurality of coarse rank positions according to the scan order (39), and a fine rank offset (47b) that points to the preset rank (37) relative to the one coarse rank position,A decoder configured to derive (35) the preset rank (37) from the data stream (16), and / or 2) the decoder (12) sequentially decoding the transformation coefficients having a rank smaller than the preset rank (37) in reverse order of the scan order (39), by entropy decoding (51) the first part (53a) of the binarization of the transformation coefficient currently being decoded in a binary context adaptive manner and decoding the remainder part (23b) of the binarization from the data stream (16), thereby decoding the transformation coefficient currently being decoded in each time block entropy-coded in the coefficient unit, and deriving a context (55) for decoding at least one bin of the first part (53a) using one or more previously decoded transformation coefficients of each time block entropy-coded in the coefficient unit. Claim 13 A decoder configured to derive the preset rank (37) from the data stream (16) by decoding the detailed rank offset (47b) using a fixed length code in claim 12. Claim 14 In paragraph 13, a decoder configured to decode the fixed-length code from the data stream (16) at a code rate of 1. Claim 15 A decoder configured to derive (35) the preset rank (37) from the data stream (16), wherein, in any one of claims 12 to 14, if the one rough rank position corresponds to one of X leading rough rank positions in the scan order (39), the rough rank index (47a) is decoded using a truncated unary code, and if the one rough rank position does not correspond to the X leading rough rank positions in the scan order (39), the rough rank index (47a) is decoded using a truncated binary code following the truncated unary code for X in order to index the one rough rank position among subsequent rough rank positions following the X leading rough rank positions in the scan order (39). Claim 16 A decoder configured to decode the currently decoded transform coefficient of each time block entropy-coded in the coefficient unit, by deriving the context (55) for decoding at least one bin of the first part by decoding the transform coefficient having a rank smaller than the preset rank (37) in reverse direction with respect to the scan order (39), in order to decode the transform coefficient having a rank smaller than the preset rank (37) in any one of claims 12 to 15. Claim 17 In any one of claims 12 to 16, in sequentially decoding the transformation coefficients having a rank smaller than the preset rank (37) in reverse with respect to the scan order (39), a second context for decoding a sequence of greater-bins of the first part is derived according to a quantized version of the rank of the transformation coefficient currently being decoded, and is configured to decode the transformation coefficient currently being decoded of each time block entropy-coded in units of the coefficients, wherein each greater-bin indicates whether the residual sample value (80) is greater than x+const when the rank of each greater-bin is x. Claim 18 A decoder configured to decode the transformation coefficients using binarization including a significance bin in any one of claims 12 to 17, and configured to infer that the significance flag indicates non-zeroness when decoding the transformation coefficients in which the position in the scan order (39) is the same as the preset rank (37). Claim 19 A decoder configured to decode the transformation coefficients using binarization including a significance bin in any one of claims 12 to 18, wherein, when decoding a transformation coefficient in which a position in the scan order (39) is the same as the preset rank (37), the significance bin is decoded when the preset rank (37) corresponds to the last rank of the scan order (39), and the significance flag is inferred to indicate non-zero when the preset rank (37) does not correspond to the last rank of the scan order (39). Claim 20 A decoder configured to decode the currently decoded transform coefficients of each time block entropy-coded in units of the coefficients, by deriving a context for decoding at least one bin of the first part according to the rank of the currently decoded transform coefficients, in any one of claims 12 to 19, in reverse direction with respect to the scan order (39) and sequentially decoding the transform coefficients having a rank smaller than the preset rank (37). Claim 21 In an encoder (10) for encoding a digital time-varying signal (92) into a data stream (16), the digital time-varying signal (92) is configured to encode the digital time-varying signal (92) into the data stream (16) in time-block units by encoding a residual sample value (80) for a current sample position (17a) of each sample-wise entropy-coded time block into the data stream (16), and sequentially determining a predetermined sample value (13) for a sample position (17) of each sample-wise entropy-coded time block, thereby encoding each sample-wise entropy-coded time block among the temporal blocks (140) of the digital time-varying signal (92). The residual sample value (80) is configured such that the current sample The purpose is to correct the prediction sample value (64) for a position (17a), and to encode the residual sample value (80) for the current sample position (17a) of each time block entropy-coded in the sample unit, the first part (23a) of the binarization of the residual sample value (80) is entropy-encoded in a binary context-adaptively, and the remainder part (23b) of the binarization is encoded into the data stream (16), and the encoder (10) includes one or more previous sample positions (17b, of each time block entropy-coded in the sample unit,An encoder configured to derive a context (25) for encoding at least one bin of the first part (23a) using the above-mentioned preset sample value (13) of c). Claim 22 An encoder configured to derive the first context for encoding the first predetermined bin (27a) of the first part (23a) by using the sum of the absolute values ​​of the predetermined sample values ​​(13) of the preceding sample positions (17b, c) of the sample-unit entropy-coded time block located within a template having a predetermined relative time position for the current sample position (17a), and / or the zeroness and / or sign of the predetermined sample values ​​(13) of the preceding sample positions (17b, c) of the sample-unit entropy-coded time block. Claim 23 In paragraph 22, the first set bin (27a) is an encoder that is a significance flag indicating whether the residual sample value (80) is 0. Claim 24 In any one of claims 21 to 23, a second context for encoding a sequence of greater-bins of the first part (23a) is configured to be derived according to one or more of the sum of absolute values ​​of the preceding sample positions (17b, c) of each time block entropy-coded by sample unit, which is located within a template having the sum of the absolute values ​​of the preceding sample values ​​(13) of each time block entropy-coded by sample unit, x-1, or x-1 clipped to the first maximum value, or the sum of the absolute values ​​of the preceding sample positions (17b, c) of each time block entropy-coded by sample unit, or a quantized and clipped version of the sum, wherein each greater-bin is an encoder indicating whether the residual sample value (80) is greater than x+const, where x is the rank of each greater-bin. Claim 25 An encoder configured to derive the predicted sample value (64) for the current sample position (17a) by using a template of the preceding K sample positions (17) of the current sample position (17a) in a sample order in which the pre-set sample value (13) for each time block entropy-coded in the sample unit at K sample positions (17) is sequentially encoded by forming a weighted sum of the pre-set sample value (13) for each sample position (17) of each time block entropy-coded in the sample unit at any one of claims 21 to 24. Claim 26 In paragraph 25, a second context for encoding a sequence of greater-bins of the first part (23a) is configured to be derived based on whether the current sample position (17a) is separated by less than K sample positions (17) from the previously encoded time block in reverse order of the sample sequence, and each of the greater-bins is an encoder indicating whether the residual sample value (80) is greater than x+const, where the rank of each greater-bin is x. Claim 27 An encoder configured to determine a rice parameter by quantizing or thresholding an absolute sum measure for the preset sample value (13) of each preceding sample position (17b, c) of each time block entropy-coded in the sample unit, in any one of claims 21 to 26, when encoding the remainder part (23b) of the binarization into the data stream (16), and to encode a rice code using the rice parameter. Claim 28 In claim 27, the rice code comprises a unary code quotient portion, and the encoder (10) is configured to encode the bins of the unary code quotient portion by context-adaptive binary entropy encoding. Claim 29 In claim 28, the unary code quotient portion is a truncated unary code such that the number of codewords of the truncated unary code is limited to a predefined maximal quotient value, and when the unary code portion of the rice code corresponds to a predefined codeword associated with the predefined maximal quotient value, there is no fixed length remainder portion of the rice coding, and the encoder is configured to encode the fixed length remainder portion having a length corresponding to the rice parameter when the unary code portion of the rice code does not correspond to a predefined codeword associated with the predefined maximal quotient value. Claim 30 In claim 29, the encoder is configured to encode an exponential Golomb code as an extension of the rice code when the unary code portion of the rice code corresponds to the pre-set codeword associated with the pre-set maximum quotient value. Claim 31 An encoder configured such that, in any one of claims 21 to 29, when encoding each time block entropy-coded in a sample unit among the time blocks (140) of the digital time-varying signal (92), the prediction of each time block entropy-coded in a sample unit among the time blocks (140) using one selected from a set of prediction modes to obtain a prediction signal (64), wherein at each sample position (17) of each time block entropy-coded in a sample unit, the prediction signal (64) can be corrected using the preset sample value (13) for each sample position (17) of each time block entropy-coded in a sample unit. Claim 32 In an encoder (10) for encoding a digital time-varying signal (92) into a data stream (16), the encoder obtains transform coefficients by performing a transformation on the time-domain residual signal of each time block that is coefficient-wise entropy-coded, so as to be able to restore each time block that is coefficient-wise entropy-coded by correcting the prediction signal (64) for each time block that is coefficient-wise entropy-coded using a time-domain residual signal, and among the transform coefficients of the time block that is coefficient-wise entropy-coded, the encoder signals in the data stream (16) the predetermined rank (37) indicating that the transform coefficients having a rank greater than the predetermined rank (37) according to the scan order (39) defined between the transform coefficients are zero, and in the reverse direction with respect to the scan order (39), the predetermined rank (37) By sequentially encoding the transformation coefficients having a rank smaller than the rank (37), each time block entropy-coded in the coefficient unit among the time blocks (140) of the digital time-varying signal (92) is encoded, thereby configuring the digital time-varying signal (92) to be encoded into the data stream (16) in time block units, and the encoder (10) encodes a coarse rank index (47a) that indexes one of a plurality of coarse rank positions following the scan order (39), and encodes a fine rank offset (47b) that points to the preset rank (37) relative to the one coarse rank position,An encoder configured to encode the above-mentioned preset rank (37) into the data stream (16), and / or 2) the encoder (10) is configured to encode the currently encoded transform coefficients of each time block entropy-coded in the coefficient unit by entropy-coding the first part (53a) of the binarization of the currently decoded transform coefficients having a rank smaller than the above-mentioned preset rank (37) in reverse order of the scan order (39), in a binary context-adaptive manner, and encode the remaining part (53b) of the binarization into the data stream (16), thereby encoding the currently encoded transform coefficients of each time block entropy-coded in the coefficient unit, and deriving a context (55) for encoding at least one bin of the first part (53a) using one or more previously encoded transform coefficients of each time block entropy-coded in the coefficient unit. Claim 33 In claim 32, an encoder configured to encode the pre-set rank (37) into the data stream (16) by encoding the detailed rank offset (47b) using a fixed length code. Claim 34 In paragraph 33, an encoder configured to encode the fixed-length code into the data stream (16) at a code rate of 1. Claim 35 An encoder configured to encode the pre-set rank (37) into the data stream (16) by encoding the pre-set rank (37) using a truncated unary code when the one pre-set rank position corresponds to one of X leading coarse rank positions in the scan order (39), and when the one pre-set rank position does not correspond to the X leading coarse rank positions in the scan order (39), encoding the pre-set rank index (47a) using a truncated binary code following the truncated unary code for X in order to index the one pre-set rank position among subsequent coarse rank positions following the X leading coarse rank positions in the scan order (39). Claim 36 An encoder configured to encode the currently encoded transform coefficient of each time block entropy-coded in the coefficient unit, by deriving the context (55) for encoding at least one bin of the first part (53a) by quantizing or thresholding the sum measure of the absolute value of previously encoded transform coefficients within a template covering a set number of rank positions prior to the currently encoded transform coefficient in the scan order (39) in reverse of any one of claims 32 to 35. Claim 37 In any one of claims 32 to 36, in sequentially encoding the transformation coefficients having a rank smaller than the preset rank (37) in reverse direction with respect to the scan order (39), a second context for encoding a sequence of greater-bins of the first part (53a) is derived according to a quantized version of the rank of the transformation coefficient currently being encoded, and is configured to encode the transformation coefficient currently being encoded of each time block entropy-coded in units of the coefficient, wherein each greater-bin indicates whether the residual sample value is greater than x+const when the rank of each greater-bin is x. Claim 38 An encoder configured to encode the transformation coefficients using binarization including a significance bin in any one of claims 32 to 37, and configured to infer that the significance flag indicates non-zeroness when encoding transformation coefficients where the position in the scan order (39) is the same as the preset rank (37). Claim 39 An encoder configured to encode the transformation coefficients using binarization including a significance bin in any one of claims 32 to 38, wherein, when encoding a transformation coefficient whose position in the scan order (39) is the same as the preset rank (37), the significance bin is encoded when the preset rank (37) corresponds to the last rank of the scan order (39), and the significance flag is inferred to indicate non-zero when the preset rank (37) does not correspond to the last rank of the scan order (39). Claim 40 An encoder configured to encode the currently encoded transform coefficients of each time block entropy-coded in units of the coefficients, by deriving a context for encoding at least one bin of the first part (53a) according to the rank of the currently encoded transform coefficients, in any one of claims 32 to 39, in reverse direction with respect to the scan order (39) and sequentially encoding the transform coefficients having a rank smaller than the preset rank (37). Claim 41 A decoding method for decoding a digital time-varying signal (92) from a data stream (16), wherein the residual sample value (80) for the current sample position (17a) of each sample-wise entropy-coded time block is decoded from the data stream (16), and the prediction sample value (64) for the current sample position (17a) is corrected using the residual sample value (80), thereby sequentially determining a predetermined sample value (13) for the sample position (17) of each sample-wise entropy-coded time block, thereby decoding each sample-wise entropy-coded time block among the time blocks (140) of the digital time-varying signal (92), the digital A decoding method comprising the step of decoding a time-varying signal (92) in time blocks, wherein the decoding of the residual sample value (80) for the current sample position (17a) of each time block (140) entropy-coded in sample blocks comprises: entropy-decoding (21) a first part (23a) of the binarization of the residual sample value (80) in a binary context-adaptive manner, and decoding the remaining part (23b) of the binarization from the data stream (16); wherein the method comprises the step of deriving a context (25) for decoding at least one bin of the first part (23a) using the preset sample value (13) of one or more previous sample positions (17b, c) of each time block entropy-coded in sample blocks. Claim 42 A method for decoding a digital time-varying signal (92) from a data stream (16), wherein, among the transform coefficients of each time block that are coefficient-wise entropy-coded, a predetermined rank (37) is derived from the data stream (16) in which the transform coefficients having a rank greater than the predetermined rank (37) are zero according to a scan order (39) defined between the transform coefficients, the transform coefficients having a rank smaller than the predetermined rank (37) are sequentially decoded in reverse with respect to the scan order (39), a re-transformation is performed on the transform coefficients of each time block that are coefficient-wise entropy-coded to obtain a time-domain residual signal (45), and each time block that is coefficient-wise entropy-coded is used with the time-domain residual signal (45). The method comprises the step of decoding each time block that is coefficient-wise entropy-coded among the time blocks (140) of the digital time-varying signal (92) in time blocks from the data stream (16) by correcting the prediction signal (64) for the block and restoring each time block that is coefficient-wise entropy-coded, and decoding each time block that is coefficient-wise entropy-coded among the time blocks (140) of the digital time-varying signal (92), and the method comprises decoding a coarse rank index (47a) that indexes one of a plurality of coarse rank positions according to the scan order (39), and decoding a fine rank offset (47b) that points to the preset rank (37) relative to the one coarse rank position.A decoding method comprising the step of deriving the preset rank (37) from the data stream (16), and / or 2) the method, in sequentially decoding the transformation coefficients having a rank smaller than the preset rank (37) in reverse order of the scan order (39), wherein the first part (53a) of the binarization of the transformation coefficient currently being decoded is entropy decoded (51) in a binary context-adaptive manner, and the remainder part (23b) of the binarization is decoded from the data stream (16), thereby decoding the transformation coefficient currently being decoded for each time block entropy-coded in units of the coefficients, and wherein the method comprises the step of deriving a context (55) for decoding at least one bin of the first part (53a) using one or more previously decoded transformation coefficients of each time block entropy-coded in units of the coefficients. Claim 43 In an encoding method for encoding a digital time-varying signal (92) into a data stream (16), the method comprises the step of encoding the digital time-varying signal (92) into the data stream (16) in time-block units by encoding a residual sample value (80) for a current sample position (17a) of each sample-wise entropy-coded time block into the data stream (16), and sequentially determining a predetermined sample value (13) for a sample position (17) of each sample-wise entropy-coded time block, thereby encoding each sample-wise entropy-coded time block among the temporal blocks (140) of the digital time-varying signal (92). The residual sample value (80) is a prediction for the current sample position (17a) using the residual sample value (80). The encoding method is for correcting the prediction sample value (64) and encoding the residual sample value (80) for the current sample position (17a) of each time block entropy-coded in the sample unit, comprising entropy-coding a first part (23a) of the binarization of the residual sample value (80) in a binary context-adaptive manner and encoding the remaining part (23b) of the binarization into the data stream (16), and the method comprises the step of deriving a context (25) for encoding at least one bin of the first part (23a) using the preset sample value (13) of one or more previous sample positions (17b, c) of each time block entropy-coded in the sample unit. Claim 44 In an encoding method for encoding a digital time-varying signal (92) into a data stream (16), the method enables the recovery of each time block that is entropy-coded by coefficients by correcting a prediction signal (64) for each time block that is entropy-coded by coefficients using a time-domain residual signal, by performing a transformation on the time-domain residual signal of each time block that is entropy-coded by coefficients to obtain transformation coefficients, and among the transformation coefficients of the time block that is entropy-coded by coefficients, the predetermined rank (37) indicating that transformation coefficients having a rank greater than the predetermined rank (37) according to a scan order (39) defined between the transformation coefficients are signaled in the data stream (16), and in the reverse direction of the scan order (39), having a rank smaller than the predetermined rank (37). The method comprises the step of encoding each time block of the digital time-varying signal (92) in the time block (140) of the digital time-varying signal (92) in the time block unit by sequentially encoding the above-mentioned transformation coefficients, thereby encoding each time block that is coefficient-wise entropy-coded in the time block unit of the digital time-varying signal (92) into the data stream (16), and the method further comprises encoding a coarse rank index (47a) that indexes one of a plurality of coarse rank positions according to the scan order (39), and encoding a fine rank offset (47b) that points to the preset rank (37) relative to the one coarse rank position,The encoding method comprises the step of encoding the above-mentioned preset rank (37) into the data stream (16), and / or 2) the method, in sequentially encoding the transformation coefficients having a rank smaller than the preset rank (37) in reverse order of the scan order (39), entropy-encoding the first part (53a) of the binarization of the currently decoding transformation coefficient in a binary context-adaptive manner and encoding the remaining part (53b) of the binarization into the data stream (16), thereby encoding the currently encoded transformation coefficient of each time block entropy-coded in units of the coefficient, and deriving a context (55) for encoding at least one bin of the first part (53a) using one or more previously encoded transformation coefficients of each time block entropy-coded in units of the coefficient. Claim 45 A data stream encoded using the method according to Paragraph 43. Claim 46 A data stream encoded using the method according to Paragraph 44. Claim 47 A computer program for implementing the method of any one of claims 41 to 44 when executed on a computer or signal processor.