Apparatuses, methods, computer programs, encoded representations and data streams for predicting a multi-channel signal
The multi-hypothesis cross-channel prediction method optimizes signal quality and coding efficiency by using weighted combinations of multiple channels with temporal and additive offsets, addressing the complexity of multi-channel signal coding.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
- Filing Date
- 2025-10-30
- Publication Date
- 2026-05-07
AI Technical Summary
The complexity of multi-channel signals poses challenges for precise and efficient prediction-based coding due to interdependencies between channels, nonlinear dependencies, and timedependent correlations, making it difficult to achieve a balance between signal quality, computational complexity, and coding efficiency.
A multi-hypothesis cross-channel prediction method that uses a weighted combination of previously decoded values from multiple channels, incorporating temporal offsets and additive offsets, to optimize prediction accuracy while reducing computational complexity.
This approach enhances prediction accuracy and coding efficiency by leveraging inter-channel dependencies, reducing the number of bits required for residual information, and adapting to available computational resources, thereby improving signal quality with minimal computational demand.
Smart Images

Figure EP2025081444_07052026_PF_FP_ABST
Abstract
Description
[0001] Apparatuses, Methods, Computer Programs, Encoded Representations and Data Streams for Predicting a Multi-Channel Signal
[0002] Technical Field
[0003] Embodiments comprise apparatuses, methods, computer programs, encoded representations and data streams for predicting a multi-channel signal.
[0004] In particular, embodiments comprise or are related to multi-hypothesis cross-channel prediction (e.g. incl. copy with offset).
[0005] Background of the Invention
[0006] Due to the complexity of multi-channel-signals, a use of prediction-based coding methods for the coding of such signals is a challenging task. For example, due to complex interdependencies between different channels, nonlinear dependencies and / or timedependent correlations, obtaining a precise and efficient prediction signal is difficult.
[0007] Therefore, it is desired to get a concept for predicting a multi-channel signal which achieves a better compromise between a quality of the predicted signal and respectively reconstructed signal, and a computational complexity, a scalability and a coding efficiency of the concept.
[0008] This is achieved by the subject matter of the independent claims of the present application.
[0009] Further embodiments according to the invention are defined by the subject matter of the dependent claims of the present application.
[0010] Summary of the Invention
[0011] In the following, embodiments of the invention are explained structured according to inventive aspects, e.g. aspects A to D. However, it is to be noted that the following structuring is for explanatory purposes, in order to facilitate understanding the invention.
[0012] Hence, it is to be noted that any features, functionalities and / or details according to an embodiment according to any aspect of the invention may be used with, and / or incorporated in, any other embodiment according to the same and / or another aspect of the invention, individually or in combination. Furthermore, some inventive embodiments will be explained in the context of an apparatus for obtaining a decoded (e.g. multi-channel) signal, e.g. a decoder, and other inventive embodiments will be explained in the context of an apparatus for obtaining an encoded representation on the basis of a (e.g. multi-channel) signal, e.g. an encoder. It is to be noted that features, functionalities and details that are explained in the context of a decoder may be implemented analogously in or added to or used with a corresponding encoder, individually or taken in combination (e.g. in a same, a corresponding or accordingly adapted manner). Vice versa, features, functionalities and details as disclosed for inventive encoders may be incorporated in corresponding decoders (e.g. in a same or accordingly adapted manner, e.g. both individually or taken in combination). Accordingly, it is to be noted that decoders and corresponding encoders (or vice versa) may be based on similar and / or equivalent inventive concepts and may hence comprise corresponding advantages.
[0013] Moreover, further inventive aspect will be explained in the context of methods. It is to be noted that any of the features, functionalities and / or details as explained in the context of any of the inventive encoders and / or decoders may be incorporated in or may be used with or may be added to any of the inventive methods, individually or taken in combination (e.g. in a same, a corresponding or accordingly adapted manner). Furthermore, methods according to embodiments of the invention may be based on the same or similar or analogous considerations and / or ideas as corresponding encoders and / or decoders. Hence, these methods may comprise same or similar or analogous features and advantages.
[0014] Moreover, further inventive aspect will be explained in the context of encoded representations and / or data streams. It is to be noted that any of the features, functionalities and / or details as explained in the context of any of the inventive encoders and / or decoders may be incorporated in or may be present in or may be added to any of the inventive encoded representations and / or data streams, individually or taken in combination (e.g. in a same, a corresponding or accordingly adapted manner). Furthermore, encoded representations and / or data streams according the embodiments of the invention may be based on the same or similar or analogous considerations and / or ideas as corresponding encoders and / or decoders. Hence, these encoded representations and / or data streams may comprise same or similar or analogous features and advantages.
[0015] According to the above explanations, some features, functionalities and details may be explained or disclosed in the context of embodiments according to a specific aspect, or an encoder rather than a decoder or vice versa, or according to a method, for the sake of brevity and conciseness. Hence, again, it is to be highlighted that any feature, functionality and / or detail of an embodiment may be incorporated or used with or added to any other embodiment according to the invention, individually or taken in combination.
[0016] First inventive aspect, e.g. aspect A
[0017] In the following, inter alia, embodiments related to obtaining prediction values based on two other channels are discussed.
[0018] An embodiment according to the invention comprises an apparatus (e.g. a decoder) for obtaining a decoded multi-channel signal (e.g. a multi-channel biomedical signal, or a multichannel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c; e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr).
[0019] It was recognized that an improved prediction for a current channel signal may be performed, using a first set of decoded values of a first other channel and using a second set of decoded values of a second other channel.
[0020] Basing a current prediction on more than one other channel signal enables exploiting even complex inter-channel-dependencies. Hence, as an example, a number of bits for providing a residual information about the current channel signal may be reduced. Furthermore, combining at least two other channel signals, e.g. sample values thereof, enables optimizing more degrees of freedom controlling the combining of the two signals and hence a more precise prediction.
[0021] According to an embodiment of the invention, the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using a weighted combination of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr), wherein, for example, a weighting of the plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) is determined using a first weighting value, e.g. lambdaO, and wherein, for example, a weighting of the plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevO) is determined using a second weighting value, e.g. lambdal).
[0022] Using a weighted combination of the decoded values provides for degrees of freedom in the shape of the respective weights, in order to precisely predict the current channel signal. Hence, optimized weights for the prediction may be obtained.
[0023] Furthermore, determining the weights based on previously decoded values (e.g. already reconstructed boundary samples), which are available on the decoder side, enables obtaining optimized weights, without having to provide the same in the data stream.
[0024] According to an embodiment of the invention, the apparatus is configured to determine a first temporal offset value (e.g. offsetValFirst), defining which previously decoded values of the first other channel (e.g. Y[cprevO][iStart - offsetValFirst +j] for 0<=j<bsCurr) are used for obtaining (e.g. determining) the prediction values for a given temporal portion of the current signal (e.g. pred[c][iStart + j] for 0<=j<bsCurr), using a first temporal offset value information included in the encoded representation, and the apparatus is configured to determine a second temporal offset value (e.g. offsetValSecond), defining which previously decoded values of the second other channel (e.g. Y[cprev1][iStart - offsetValSecond +j] for 0<=j<bsCurr) are used for determining the prediction values for the given temporal portion of the current signal (e.g. pred[c][iStart + j] for 0<=j<bsCurr), using a second temporal offset value information (e.g. offsetValSecond) included in the encoded representation.
[0025] It was recognized that inter-channel-dependencies may, for example, change significantly over time. Hence, introducing different temporal offsets for the prediction of the current channel signal enables exploiting such divergent temporal correlations. According to an embodiment of the invention, the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. pred[c] [iStart+j] for 0<=j<bsCurr) using an additive offset value (e.g. b).
[0026] It was recognized that different channel signal may comprise different baselines, e.g. DC-offsets. Hence, in order to incorporate such a difference between different channels, a prediction signal based on channel signals of two other signals may be corrected using the additive offset value.
[0027] Furthermore, such an additive offset may also enable incorporating channel baseline drifts over time for the prediction.
[0028] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) in dependence on a previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize).
[0029] It was recognized that a baseline offset between the previously decoded portion of the current channel signal and the corresponding previously decoded portions of the first and second other channels may be correlated with a potential baseline offset (e.g. which may be compensated by the additive offset) for the current prediction.
[0030] Furthermore, determining the offset based on previously decoded values (e.g. already reconstructed boundary samples), which are available on the decoder side, enables obtaining an optimized offset, without having to provide the same in the data stream.
[0031] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, in dependence on a previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), and the apparatus is configured to determine a second weighting value (e.g. lambdal), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr) in a weighted combination, in dependence on the previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize).
[0032] It was recognized that an inter channel signal correlation for a current prediction may be correlated to a previous inter channel signal correlation in already reconstructed data. Hence, from the previously decoded signal portions an approximation for currently optimal weights for the signal prediction may be obtained, e.g. without having to explicitly provide the same in the data stream.
[0033] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) using a minimization of a prediction error (e.g. using an optimization of one or more prediction parameters, including the additive offset value) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a parameterized prediction function in which the additive offset is a parameter; e.g. using a determination of at least locally optimal parameters resulting in an at least locally minimal deviation between the template portion of the current channel signal and a prediction result of the parameterized prediction function).
[0034] It was recognized that an offset error for the current prediction may be approximated and hence compensated based on a prediction error in a template portion of the current channel signal for which the prediction is performed. According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) using a computation of a mean difference value (e.g. b) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a prediction function in which a weighting of sample values of the first other channel (e.g. and of the second other channel) are predetermined, and in which a temporal offset of sample values of the first other signal and a temporal offset of sample values of the second other signal are predetermined)).
[0035] The determination of the mean difference value may enable a computationally efficient and precise estimation of a prediction error (e.g. at least a portion thereof, e.g. a baseline or DC-portion) that is to be compensated using the additive offset value.
[0036] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, and a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination, using a minimization of a prediction error (e.g. using an optimization of one or more prediction parameters, including the first weighting value and the second weigthing value) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a parameterized prediction function in which the first weighting value and the second weighting value, and possibly also the additive offset value, are parameters; e.g. using a determination of at least locally optimal parameters resulting in an at least locally minimal deviation between the template portion of the current channel signal and a prediction result of the parameterized prediction function).
[0037] This may enable minimizing the prediction error for the prediction of the current channel signal.
[0038] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, and a second weighting value (e.g. lambdal), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination, and an additive offset value (e.g. b), using a solution of a linear equation system (e.g. using a solution of a linear equation system defining parameter values (e.g. lambdaO, lambdal, b) for which partial derivatives of a prediction error function describing a difference between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a parameterized prediction function in which the additive offset is a parameter; e.g. using a determination of at least locally optimal parameters resulting in an at least locally minimal deviation between the template portion of the current channel signal and a prediction result of the parameterized prediction function) in dependence on a plurality of parameter values (e.g. lambdaO, lambdal, b) become zero).
[0039] Providing such an optimization problem as a linear equation system enables using standardalgorithms for obtaining the first weighting value, the second weighting value and the additive offset value. Such algorithms are efficient and enable a solving of the problem with limited computational resources.
[0040] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, and a second weighting value (e.g. lambdal), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination, and an additive offset value (e.g. b) using a solution of a linear equation system defined as
[0041]
[0042] where C is a symmetric 3x3 matrix and v is a column vector of size 3 with the following elements: Coo=It.e^plateSlze 1Y[cprev0][iStart - offsetValFirst — templateSize + j ] * Y[cprev0][iStart - offsetValFirst — templateSize + j ],
[0043] C01= ^=^plateSlze^ cp -evoJliStart - offsetValFirst — templateSize + j ] *
[0044]
[0045] wherein templateSize describes an extension of the template (e.g. the template portion) (e.g. a fixed number of samples on the left boundary, e.g. 16, of a block of samples, of which Y[c] is part of);wherein Y[c][i] describes an array or vector of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index; wherein cprevO is a channel index of the first other channel; wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetValFirst describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein offsetValSecond describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein cprevl is a channel index of the second other channel;
[0046] wherein b is the additive offset value.
[0047] It was recognized that the above-discussed determination of the weighting values and the offset value is computationally efficient and provides for good prediction results. According to an embodiment of the invention, the apparatus is configured to set a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination to a first default value, and the apparatus is configured to set a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination to a second default value (which may be equal to the first default value, or which may be different from the first default value) (e.g. and to compute an additive offset value at its end, e.g. as described above).
[0048] Hence, embodiments may enable providing a prediction mode with reduced computational demand, e.g. for devices having limited computational resources. Furthermore, such an approach may, for example, be particularly efficient, in case only a very limited template portion comprising decoded sample values is available.
[0049] According to an embodiment of the invention, the apparatus is configured to switch between a first mode, in which the apparatus determines a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) in a weighted combination, in dependence on a previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] forO<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), and in which the apparatus determines a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSXeond +j] for 0<=j<bsCurr) in a weighted combination, in dependence on the previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), and
[0050] a second mode, in which the apparatus uses predetermined default values for the first weighting value and the second weighting value
[0051] in dependence on a signaling information (e.g. cc_pred_offset_only_flag; e.g. a dedicated signaling flag) included in the encoded representation (wherein the apparatus may be configured to extract the signaling information from the encoded representation).
[0052] Hence, the prediction may be selectively adapted, e.g. depending on an available template portion (e.g. depending on whether a sufficient amount of previously decoded values is available) or based on computational resources available. Hence, the inventive approach comprises an increased flexibility.
[0053] According to an embodiment of the invention, the apparatus is configured to switch between a single hypothesis mode in which the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a single other channel (only)(e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr), and
[0054] a multi hypothesis mode, in which the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) and in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr) in dependence on a signaling information (e.g. cc_pred_mult_hyp_flag; e.g. a dedicated signaling flag) included in the encoded representation (wherein the apparatus may be configured to extract the signaling information from the encoded representation).
[0055] Hence, the prediction may be adapted depending on the computational resources available, e.g. whether additional parameters for a multi-hypothesis prediction can be optimized and optionally signaled. Furthermore, it was recognized that in some cases, a single hypothesis mode may, for example, provide better prediction results or for example, only slightly worse prediction results, but with significantly reduced complexity, e.g. in the form of computational effort, compared to a multi-hypothesis prediction.
[0056] According to an embodiment of the invention, the apparatus is configured to obtain a channel index (e.g. cPrevO) determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrevOPred) of a first channel used to obtain a plurality of prediction values for a previous portion of the current signal, and the apparatus is configured to obtain a channel index (e.g. cPrev1) determining the second other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrev1Pred) of a second channel used to obtain the plurality of prediction values for the previous portion of the current signal.
[0057] Hence, a signaling effort for identifying the channels to be used for the prediction may be reduced.
[0058] Second inventive aspect, e.g. aspect B.
[0059] In the following, inter alia, embodiments related to using predetermined weigthing values (see e.g. “Simplification of cross channel prediction”), both for single hypothesis and multi hypothesis cases are discussed.
[0060] An embodiment according to the invention comprises an apparatus for obtaining a decoded multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index eprevi) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using a weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally using a weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)), and wherein the apparatus is configured to set a first weighting value (e.g. lambdaO), defining a weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) to a first default value.
[0061] It was recognized that an inter-channel prediction with a very limited computational demand and signaling effort, but nevertheless precise prediction results may be achieved, when, for example, selectively setting the first weighting value to a default value. Furthermore, this approach may, for example, be particularly efficient, if only a limited amount of previously decoded sample values is available, e.g. if a template Size is greater than a sample value index iStart of a currently decoded block.
[0062] Hence, a switching functionality may be provided to switch to a low complexity prediction mode or for example to switch to a prediction mode which can cope with limited available data efficiently.
[0063] According to an embodiment of the invention, the apparatus is configured to switch between a first mode, in which the apparatus determines the first weighting value (e.g. lambdaO), defining the weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr), in dependence on a previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) (and optionally of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize)), and
[0064] a second mode, in which the apparatus uses the predetermined default values for the first weighting value in dependence on a signaling information (e.g. cc_pred_offset_only_flag; e.g. a dedicated signaling flag) included in the encoded representation (wherein the apparatus may be configured to extract the signaling information from the encoded representation).
[0065] Hence, the mode may, for example, be selectively adjusted depending on current constraints, e.g. whether a sufficient amount of previously decoded sample values is available, or whether currently, computational resources are limited, e.g. in order to determine the first weighting value based on solving an optimization problem.
[0066] According to an embodiment of the invention, the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using an additive offset value (e.g. b), and the apparatus is configured to determine the additive offset value (e.g. b) in dependence on a previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on a corresponding (e.g. time-shifted) previously decoded portion of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) both in the first mode and in the second mode.
[0067] It was recognized that performing an individual, e.g. individually optimized, offset correction may, for example, provide an improved trade-off between a computational complexity and prediction accuracy, compared to performing an individual, e.g. individually optimized weighting.
[0068] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) using a computation of a mean difference value (e.g. b) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. Y[cprev][iStart-offsetValFirst-templatesize+j for 0<=j<templateSize or Y[cprevO][iStart-offsetValFirst-templateSize+j]+Y[cprev1][iStart-offsetValSecond-templateSize+j]) (e.g. obtained using a prediction function in which a weighting of sample values of the first other channel (e.g.1 or 1 / 2) and of the second other channel (e.g. 1 or 1 / 2) are predetermined, and in which a temporal offset (e.g. offsetValFirst) of sample values of the first other cannel and a temporal offset (e.g. offsetValSecond) of sample values of the second other channel are predetermined)). This approach is not only computationally efficient but also enables mitigating an influence of outlier values.
[0069] According to an embodiment of the invention, the apparatus is configured to obtain the additive offset value b according to
[0070]
[0071] − Y[cprev][iStart − offsetValFirst − templateSize + j]),
[0072] 0 < j < templateSize.
[0073] wherein templateSize describes an extension of the template (e.g. the template portion) (e.g. a fixed number of samples on the left boundary, e.g. 16, of a block of samples, of which Y[c] is part of); wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index; wherein cprev is a channel index of the first other channel; wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetValFirst describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices (e.g. according to EQUATION for b from the invention disclosure, section Simplification of cross channel prediction, and defined variables as above in the claims) (e.g. in case of a single hypothesis cross channel prediction, wherein, for example, lambda is set to 1).
[0074] Alternatively, the apparatus is configured to obtain the additive offset value b according to
[0075]
[0076] wherein templateSize describes an extension of the template (e.g. the template portion) (e.g. a fixed number of samples on the left boundary, e.g. 16, of a block of samples, of which Y[c] is part of); wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index; wherein cprevO is a channel index of the first other channel; wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetValFirst describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein offsetValSecond describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein cprevl is a channel index of the second other channel; wherein b is the additive offset value (e.g. in case of a multi hypothesis cross channel prediction, wherein, for example, lambda is set to 1 or to 1 / 2).
[0077] It was recognized that the above-described approaches are particularly efficient.
[0078] Third inventive aspect, e.g. aspect C.
[0079] In the following, inter alia, embodiments related to a transmission of channel indices for crosschannel prediction are discussed.
[0080] An embodiment according to the invention comprises an apparatus for obtaining a decoded multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)). Furthermore, the apparatus is configured to obtain a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0081] It was recognized that the channel index defining the first other channel may be obtained efficiently in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal. For example, a signaling effort may be reduced by only transmitting an information about a difference of the first other channel and the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal. According to an embodiment of the invention, the apparatus is configured to obtain the channel index (e.g. cPrevO) determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on the channel index (e.g. cPrevOPred) of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a predictive decoding.
[0082] It was recognized that an information about the first other channel may be coded efficiently using predictive coding. This enables reducing a signaling effort.
[0083] According to an embodiment of the invention, the apparatus is configured to obtain the channel index (e.g. cPrevO) determining the first other channel, which is used to obtain the plurality of prediction values for the current portion (e.g. for time indices iStart + j for 0<=j<bsCurr) of the current signal, in dependence on the channel index (e.g. cPrevOPred) of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a difference information (e.g. cPrevODiff) describing a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevOPred) and a channel index of the first other channel (e.g. cPrevO), which is used to obtain the plurality of prediction values for the current portion of the current signal.
[0084] According to an embodiment of the invention, the apparatus is configured to decode a channel difference information (e.g. an entropy-encoded channel difference information; e.g. an arithmetically encoded channel difference information; e.g. a channel difference information comprising cc_pred_abs_chd_greaterO_flag. cc_pred_abs_chd_minus_1 and cc_pred_chd_sign_flag), which is included in the encoded representation, and which describes a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevOPred) and a channel index of the first other channel (e.g. cPrevO), which is used to obtain the plurality of prediction values for the current portion of the current signal, and the apparatus is configured to determine the channel index of the first other channel in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevOPred) and in dependence on the channel difference information (e.g. according to cPrevO=cPrevOPred+cPrevODiff).
[0085] Hence, a channel index residual information may be coded, describing the difference between the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and the channel index of the first other channel. For example, such a residual information may as well indicate that there is no difference in the two channel indices, e.g. by an absence of such a residual information in the bitstream or a respective flag information. The use of such a residual information enables an efficient signaling of channel index information.
[0086] According to an embodiment of the invention, the apparatus is configured to decode a channel difference information (e.g. an entropy-encoded channel difference information; e.g. an arithmetically encoded channel difference information), which is included in the encoded representation, and which describes a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevIPred) and a channel index of the second other channel (e.g. cPrevI), which is used to obtain the plurality of prediction values for the current portion of the current signal, and the apparatus is configured to determine the channel index of the second other channel in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevIPred) and in dependence on the channel difference information (e.g. according to cPrev1=cPrev1Pred+cPrev1Diff).
[0087] Hence, the channel index residual information may be provided for multi-hypothesis predictions. Since this signaling effort may increase significantly in multi-hypothesis predictions (e.g. due to side-information signaling such as channel indices), the above-discussed provision of channel index information is particularly helpful to stay within constraints regarding an available bitrate.
[0088] According to an embodiment of the invention, the apparatus is configured to evaluate a first signaling information (e.g. cc_pred_abs_chd_greaterO_flag) (e.g. a flag or an encoded value; e.g. a one-bit flag) (e.g. a signaling information included in the encoded representation), indicating whether a difference between a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal, is different from 0, and the apparatus is configured to selectively evaluate, if the first signaling information indicates that the difference is different from 0,
[0089] a second signaling information (e.g. cc_pred_abs_chd_minus1) describing a magnitude of the difference between a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal, and
[0090] - a third signaling information (cc_pred_chd_sign_flag) describing a sign of the difference between a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal. Furthermore, the apparatus is configured to determine the channel index (e.g. cPrevO) defining (e.g. determining) the first other channel in dependence on the first signaling information, and also in dependence on the second signaling information and the third signaling information if the first signaling information indicates a non-zero difference.
[0091] This enables an efficient signaling of the channel index defining the first other channel.
[0092] According to an embodiment of the invention, the apparatus is configured to add 1 to the value represented by the second signaling information (e.g. cc_pred_abs_chd_minus1), in order to derive an actual magnitude of the difference between a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0093] It was recognized that providing an offset-version of the second signaling information (e.g. the offset corrected by the addition of 1) in the bitstream is particularly efficient.
[0094] Fourth inventive aspect, e.g. aspect D.
[0095] In the following, inter alia, embodiments related to a filtering of Cross-Channel Prediction are discussed.
[0096] An embodiment according to the invention comprises an apparatus for obtaining a decoded multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally also in dependence on a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)), wherein the apparatus is configured to apply a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of prediction values, and / or to apply a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of previously decoded values, and / or to apply a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to a plurality of predicted template values (e.g. Y[cprevO] [iStart-offsetValFirst-templateSize+j]) used for a determination of one or more prediction parameters (e.g. lambdaO, lambda1, b).
[0097] A use of a filtering enables introducing additional degrees of freedom that determine how the prediction values for the current channel signal are obtained. Hence, these degrees of freedom enable performing the prediction with increased precision, for example, by using optimized filtering parameters. It was recognized that such one or more filterings are particularly efficient when applied to the plurality of prediction values and / or the plurality of previously decoded values and / or the plurality of predicted template values. Furthermore, a use of filtering may enable adapting the prediction to cases in which temporal offsets are smaller than the sampling rate.
[0098] According to an embodiment of the invention, the filtering is configured to provide a filtered value at a given position (e.g. having a given sample index) using one or more input values at one or more positions preceding the given position (e.g. having one or more sample indices which are smaller than the given sample index), and the filtering is configured to provide a filtered value at a given position (e.g. having a given sample index) using one or more input values at one or more positions following the given position (e.g. having one or more sample indices which are larger than the given sample index).
[0099] Hence, for a current position a combination of neighboring sample values may be obtained. This may, for example, be particularly advantageous if temporal offsets for prediction are smaller than the sampling rate, e.g. to interpolate between sample values. Hence, using a combination of neighboring samples, interpolated sample values, at positions “between” samples indices may, for example, be used for the prediction.
[0100] According to an embodiment of the invention, the apparatus is configured to perform the filtering using a N-tap filter (e.g. a N-tap pel filter or a N-tap half-pel filter) (wherein, for example, the N-tap filter may comprise one or more taps on a first side (e.g. before or “to the left”) of a tap associated with a current filter position (e.g. defined by a sample index of a current output value of the filtering) an wherein, for example, the N-tap filter may comprise one or more taps on a second side (e.g. behind or “to the right”) of a tap associated with the current filter position)).
[0101] It was recognized that a use of a N-tap filter is particularly efficient.
[0102] According to an embodiment of the invention, the apparatus is configured to obtain an extended portion of prediction values (e.g. extended by fPdL sample values to the left, and extended by fPdR sample values to the right), which comprises more values (e.g. by fPdl + fPdR more sample values) than a filtered portion (e.g. sequence) of prediction values (which is used as a sequence of prediction values), and the apparatus is configured to apply the filtering (e.g. a filtering using a filter having fPdl+fPdR+1 taps) to the extended portion of prediction values, to obtain the filtered portion of prediction values (wherein the filtered portion of prediction values comprises a smaller number of values than the extended portion of prediction values, e.g. due to the extension of the filter); or
[0103] Alternatively, the apparatus is configured to obtain an extended portion of previously decoded values, which comprises more values than a filtered portion of previously decoded values, and the apparatus is configured to apply the filtering to the extended portion of previously decoded values, to obtain the filtered portion of previously decoded values (wherein the filtered portion of previously decoded values comprises a smaller number of values than the extended portion of previously decoded values, e.g. due to the extension of the filter). Alternatively, the apparatus is configured to obtain an extended template portion, which comprises more values than a filtered template portion, and the apparatus is configured to apply the filtering to the extended template portion, to obtain the filtered template portion (wherein the filtered template portion comprises a smaller number of values than the extended template portion, e.g. due to the extension of the filter).
[0104] Hence, as an example, even if respective neighboring prediction values, previously decoded values and / or template portions are not available, an approximation thereof may be derived (e.g. as the extension), in order to enable the respective filtering.
[0105] According to an embodiment of the invention, the apparatus is configured to selectively obtain one or more sample values of the extended portion of prediction values using an extrapolation (e.g. using a linear regression) if one or more sample values that would be required to obtain the extended portion of prediction values are not available; or to selectively obtain one or more sample values of an extended portion of previously decoded values using an extrapolation (e.g. using a linear regression) if one or more sample values that would be required to obtain the extended portion of previously decoded values are not available; or to selectively obtain one or more sample values of an extended template portion using an extrapolation (e.g. using a linear regression) if one or more sample values that would be required to obtain the extended template portion are not available.
[0106] The extrapolation may, for example, be performed using a linear regression. However, in some cases, sample values or prediction values or template portions may as well be time-shifted, e.g. copied, versions of available sample values or prediction values or template portions.
[0107] According to an embodiment of the invention, the apparatus is configured to (e.g. selectively) obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation (e.g. by PdL samples) if
[0108] iStart - offsetValFirst < fPdl,
[0109] (or, equivalently, if iStart - offsetValSecond < fPdl)
[0110] wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained, wherein offsetValFirst describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdl describes a left-sided extension of the filtering. According to an embodiment of the invention, the apparatus is configured to (selectively) obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation (e.g. by PdR samples) if
[0111] iStart - offsetValFirst < fPdR,
[0112] (or, equivalently, if iStart - offsetValSecond < fPdR)
[0113] wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained, wherein offsetValFirst describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdR describes a right-sided extension of the filtering.
[0114] According to an embodiment of the invention, the apparatus is configured to (selectively) obtain one or obtain one or more sample values of the extended template portion using an extrapolation (e.g. by PdL samples) if
[0115] iStart - offsetValFirst -templateSize< fPdl,
[0116] (or, equivalently, if iStart - offsetValSecond -templateSize< fPdl)
[0117] wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained, wherein offsetValFirst describes a temporal offset of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdl describes a left-sided extension of the filtering; and wherein templateSize describes an extension of the template.
[0118] According to an embodiment of the invention, filter coefficients of the filtering (e.g. tap weights of a finite impulse response filter) are defined as {-3,0,19,32,19,0,-3,0}.
[0119] It was recognized that this selection of filter coefficients is particularly efficient.
[0120] According to an embodiment of the invention, filter coefficients of the filtering (e.g. tap weights of a finite impulse response filter) are defined as {-1, -4, 8, 29, 29, 8, -4,-1}.
[0121] It was recognized that this selection of filter coefficients is particularly efficient.
[0122] According to an embodiment of the invention, the apparatus is configured to switch the filtering between a first filter characteristic (e.g. defined by filter coefficients {-3,0,19,32,19,0,-3,0}) emphasizing a single filter input value over all other filter input values in an output value of the filter and a second filter characteristic (e.g. defined by filter coefficients {-1, -4, 8, 29, 29, 8, -4,-1}) equally weighting two or more filter input values in an output value of the filter.
[0123] It was recognized that such a switching of filter characteristics enables adapting the prediction to different signal correlations efficiently.
[0124] According to an embodiment of the invention, the apparatus is configured to switch between the first filter characteristic and the second filter characteristic in dependence on a signaling value (e.g. a one-bit signaling value; e.g. cc_pred_filter_idx) included in the encoded representation.
[0125] According to an embodiment of the invention, the apparatus is configured to selectively enable and disable the filtering in dependence on a signaling value (e.g. a one-bit signaling value; e.g. cc_pred_filter_flag) included in the encoded representation.
[0126] According to an embodiment of the invention, the apparatus is configured to obtain the prediction values pred [i] (e.g. a block of prediction values or a sequence of prediction values) for the current (e.g. currently considered) (e.g. having time indices iStart<=i<iStart+bsCurr) portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) according to (e.g. for blockPos < tSize and for no filtering)
[0127] pred[ i ] = Clip3(minPredVal, maxPredVal, p[ i ]) forO <= i < blockSize
[0128] wherein p[ i ] = ref[ firstPrevCh ][ blockPos + i ]
[0129] (e.g. in the case of a single contribution to the predicted values for the current portion) or wherein
[0130] p[ i ] = ( ref[ firstPrevCh ][ blockPos + i ] + ref[ secondPrevCh ][ blockPos + i ] + 1 ) » 1 (e.g. in the case of two contributions to the predicted values for the current portion) herein Clip3 is a clipping function restricting the prediction values to a range defined by a minimum boundary value minPredVal and a maximum boundary value maxPredVal; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal; wherein tSize designates a size of a template portion; wherein firstPrevCh is a channel index of a first other channel; wherein I is a running variable; wherein ref [firstPrevCh][] is a vector or an array of previously decoded values of the first other channel; wherein ref [secondPrevCh][] is a vector or an array of previously decoded values of the second other channel.
[0131] According to an embodiment of the invention, the apparatus is configured to obtain the prediction values pred [i] (e.g. a block of prediction values or a sequence of prediction values) for the current (e.g. currently considered) (e.g. having time indices iStart<=i<iStart+bsCurr) portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) according to (e.g. for blockPos < tSize and for active filtering)
[0132] pred[ i ]
[0133] = Clip3( minPredVal, maxPredVal, (X^s=zop[-fPdL + i + k] • CCFiltCoeffs[k] + 32) » 6) wherein the apparatus is configured to perform an extrapolation to obtain p[-f PdL+i] with 0<=i<fPdL if blockPos<fPdl,
[0134] wherein the apparatus is configured to optain p[] according to
[0135] p[ -fPdL + i ] = ref[ firstPrevCh ][ blockPos -fPdL + i ] for 0 <= i < fPdL
[0136] (e.g. in the case of a single contribution to the predicted values for the current portion) or according to
[0137] p[ -fPdL + i ] = ( ref[ firstPrevCh ][ blockPos -fPdL + i ] + ref[ secondPrevCh ][ blockPos -fPdL + i ]+ 1 ) »1 for 0 <= i < fPdL
[0138] (e.g. in the case of two contributions to the predicted values for the current portion) if blockPos>=fPdl
[0139] wherein Clip3 is a clipping function restricting the prediction values to a range defined by a minimum boundary value minPredVal and a maximum boundary value maxPredVal; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal; wherein tSize designates a size of a template portion; wherein firstPrevCh is a channel index of a first other channel; herein I is a running variable; wherein ref [firstPrevCh][] is a vector or an array of previously decoded values of the first other channel; wherein ref [secondPrevCh][] is a vector or an array of previously decoded values of the second other channel; wherein fPdL is a left-sided extension of a filter; wherein fSz is an extension of the filter; wherein BMFiltCoeffs[][] is an array of filter coefficients.
[0140] According to an embodiment of the invention, the apparatus is configured to obtain an additive offset value offset according to
[0141] offset = (sumDiff + (1 « (log2TSize - 1 ) ) ) » log2TSize
[0142] wherein the apparatus is configured to obtain sumDiff according to
[0143] sumDiff = Si=oze-1(currChTpl[i] - firstPrevChTpl[i])
[0144] or according to
[0145] sumDiff = ∑tSize−1i=0(currChTpl[i] − ((firstPrevChTpl[i] + secondPrevChTpl[i] + 1) ≫ 1)) wherein
[0146] currChTplf i ] = refCurrf blockPos - tSize + i ], with 0 <= i < tSize,
[0147] wherein
[0148] firstPrevChTpl [ i ] = ref[ firstPrevCh ][ blockPos - tSize + i ], with 0 <= i < tSize
[0149] wherein secondPrevChTpl [ i ] = ref[ secondPrevCh ][ blockPos - tSize + i ], with 0 <= i< tSize wherein log2TSize is a logarithmic representation of a size of a template portion; wherein i is a running variable; wherein tSize is a representation of a size of the template portion; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal; wherein ref [firstPrevCh][] is a vector or an array of previously decoded values of the first other channel; wherein ref [secondPrevCh][] is a vector or an array of previously decoded values of the second other channel.
[0150] According to an embodiment of the invention, the apparatus is configured to obtain the prediction values pred [i] (e.g. a block of prediction values or a sequence of prediction values) for the current (e.g. currently considered) (e.g. having time indices iStart<=i<iStart+bsCurr) portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) according to (e.g. for blockPos >= tSize)
[0151] pred[ i ] = Clip3( minPredVal, maxPredVal, p[ tSize +fPdL + i ] ) for 0 <= i < blockSize or according to
[0152] pred[ i ] = Clip3( minPredVal, maxPredVal, ((2k=oP [tSize + i + k] • CCFiltCoeffs[k]) + 32) » 6) for 0 <= i < blockSize
[0153] wherein
[0154] p[ i ] = ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + offset for 0 <= i < blockSize + tSize +fPdL
[0155] or wherein
[0156] p[ i ] = ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + offset for fPdL <= i <blockSize + tSize +fPdL
[0157] with an extrapolation for 0 <= i < fPdL
[0158] or wherein
[0159] p[ i ] = ( ( ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + ref[ chldxScnd ][ blockPos - tSize -fPdL + i ] +1 ) » 1 )+ offset for 0 <= i < blockSize + tSize +fPdL
[0160] or wherein
[0161] p[ i ] = ( ( ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + ref[ chldxScnd ][ blockPos - tSize -fPdL + i ] +1 ) » 1 )+ offset forfPdL <= i <blockSize + tSize +fPdL
[0162] with an extrapolation for 0 <= i < fPdL
[0163] or wherein
[0164] p[ i ] = ( v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] + ccShiftOffst) ) » ccShift
[0165] for 0 <= i < blockSize + tSize +fPdL
[0166] or wherein p[ i ] = (v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] + ccShiftOffst) ) » ccShift forfPdL <= i <blockSize + tSize +fPdL
[0167] with an extrapolation for 0 <= i < fPdL
[0168] or wherein
[0169] p[ i ] = (v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] *
[0170] ref[ chldxSecond ][ blockPos - tSize - fPdL + i ] + v
[0002] +ccShiftOffst) » ccShift
[0171] for 0 <= i < blockSize + tSize +fPdL
[0172] or wherein
[0173] p[ i ] = (v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] *
[0174] ref[ chldxSecond ][ blockPos - tSize - fPdL + i ] + v
[0002] +ccShiftOffst) » ccShift
[0175] for fPdL <= i < blockSize + tSize +fPdL
[0176] with an extrapolation for 0 <= i < fPdL
[0177] wherein Clip3 is a clipping function restricting the prediction values to a range defined by a minimum boundary value minPredVal and a maximum boundary value maxPredVal; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal; wherein tSize designates a size of a template portion; wherein chldxFirst is a channel index of a first other channel; wherein chldxsecond is a channel index of a second other channel; wherein I is a running variable; wherein ref [chi dxFirst] [] is a vector or an array of previously decoded values of the first other channel; wherein ref [chldxSecond][] is a vector or an array of previously decoded values of the second other channel; wherein fPdL is a leftsided extension of a filter; wherein fSz is an extension of the filter; wherein BMFiltCoeffs[][] is an array of filter coefficients; wherein v[0] is a weighting value describing a weight of a first contribution to the prediction (from the first other channel); wherein v
[0001] is a weighting value describing a weight of a second contribution to the prediction (from the second other channel); wherein v[2] is an additive offset value; and wherein ccShiftOffst is a predetermined value; and wherein ccShift is a predetermined shift value.
[0178] It was recognized that the above-discussed appraoches are particularly efficient.
[0179] First inventive aspect, e.g. aspect A.
[0180] In the following, inter alia, embodiments related to obtaining prediction values based on two other channels are discussed.
[0181] An embodiment according to the invention comprises an apparatus (e.g. an encoder) for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multichannel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr).
[0182] According to an embodiment of the invention, the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using a weighted combination of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] forO<=j<bsCurr) wherein, for example, a weighting of the plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) is determined using a first weighting value, e.g. lambdaO, and wherein, for example, a weighting of the plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevO) is determined using a second weighting value, e.g. lambdal).
[0183] According to an embodiment of the invention, the apparatus is configured to determine a first temporal offset value (e.g. offsetValFirst), defining which previously encoded values of the first other channel (e.g. Y[cprevO][iStart - offsetValFirst +j] for 0<=j<bsCurr) are used for obtaining (e.g. determining) the prediction values for a given temporal portion of the current signal (e.g. pred[c][iStart + j] for 0<=j<bsCurr), and wherein the apparatus is configured to encode a first temporal offset value information, comprising an information about the first temporal offset value, in the encoded representation, and wherein the apparatus is configured to determine a second temporal offset value (e.g. offsetValSecond), defining which previously encoded values of the second other channel (e.g. Y[cprev1][iStart - offsetValSecond +j] for 0<=j<bsCurr) are used for determining the prediction values for the given temporal portion of the current signal (e.g. pred[c][iStart + j] for 0<=j<bsCurr), and wherein the encoder is configured to encode a second temporal offset value information, comprising an information about the second temporal offset value (e.g. offsetValSecond) in the encoded representation.
[0184] According to an embodiment of the invention, the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c] [iStart+j] for 0<=j<bsCurr) using an additive offset value (e.g. b).
[0185] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) in dependence on a previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously encoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize).
[0186] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, in dependence on a previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously encoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), and wherein the apparatus is configured to determine a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr) in a weighted combination, in dependence on the previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding previously encoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize).
[0187] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) using a minimization of a prediction error (e.g. using an optimization of one or more prediction parameters, including the additive offset value) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a parameterized prediction function in which the additive offset is a parameter; e.g. using a determination of at least locally optimal parameters resulting in an at least locally minimal deviation between the template portion of the current channel signal and a prediction result of the parameterized prediction function).
[0188] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) using a computation of a mean difference value (e.g. b) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a prediction function in which a weighting of sample values of the first other channel (e.g. and of the second other channel) are predetermined, and in which a temporal offset of sample values of the first other signal and a temporal offset of sample values of the second other signal are predetermined).
[0189] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, and a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination, using a minimization of a prediction error (e.g. using an optimization of one or more prediction parameters, including the first weighting value and the second weigthing value) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a parameterized prediction function in which the first weighting value and the second weighting value, and possibly also the additive offset value, are parameters; e.g. using a determination of at least locally optimal parameters resulting in an at least locally minimal deviation between the template portion of the current channel signal and a prediction result of the parameterized prediction function).
[0190] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, and a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination, and an additive offset value (e.g. b), using a solution of a linear equation system (e.g. using a solution of a linear equation system defining parameter values (e.g. lambdaO, lambda1,b) for which partial derivatives of a prediction error function describing a difference between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. obtained using a parameterized prediction function in which the additive offset is a parameter; e.g. using a determination of at least locally optimal parameters resulting in an at least locally minimal deviation between the template portion of the current channel signal and a prediction result of the parameterized prediction function) in dependence on a plurality of parameter values (e.g. lambdaO, lambda1,b) become zero).
[0191] According to an embodiment of the invention, the apparatus is configured to determine a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination, and a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination, and an additive offset value (e.g. b) using a solution of a linear equation system defined as
[0192]
[0193] where C is a symmetric 3x3 matrix and v is a column vector of size 3 with the following elements:
[0194]
[0195] wherein templateSize describes an extension of the template (e.g. the template portion) (e.g. a fixed number of samples on the left boundary, e.g. 16, of a block of samples, of which Y[c] is part of);wherein Y[c][i] describes an array or vector of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index; wherein cprevO is a channel index of the first other channel; wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetValFirst describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein offsetValSecond describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein cprevl is a channel index of the second other channel; wherein b is the additive offset value. According to an embodiment of the invention, the apparatus is configured to set a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) in a weighted combination to a first default value, and wherein the apparatus is configured to set a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValsecond +j] for 0<=j<bsCurr) in a weighted combination to a second default value (which may be equal to the firstz default value, or which may be different from the first default value) (e.g. and to compute an additive offset value at its end, e.g. as described above).
[0196] According to an embodiment of the invention, the apparatus is configured to switch between a first mode, in which the apparatus determines a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) in a weighted combination, in dependence on a previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] forO<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously encoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), and in which the apparatus determines a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSXeond +j] for 0<=j<bsCurr) in a weighted combination, in dependence on the previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding previously encoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), and
[0197] a second mode, in which the apparatus uses predetermined default values for the first weighting value and the second weighting value, as a selected mode, and wherein the apparatus is configured to encode a signaling information, indicating the selected mode.
[0198] According to an embodiment of the invention, the apparatus is configured to switch between a single hypothesis mode in which the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a single other channel (only)(e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr), and
[0199] a multi hypothesis mode, in which the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) and in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr), as a selected mode, and wherein the apparatus is configured to encode a signaling information, indicating the selected mode.
[0200] According to an embodiment of the invention, the apparatus is configured to obtain a channel index (e.g. cPrevO) determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrevOPred) of a first channel used to obtain a plurality of prediction values for a previous portion of the current signal, and wherein the apparatus is configured to obtain a channel index (e.g. cPrev1) determining the second other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrev1Pred) of a second channel used to obtain the plurality of prediction values for the previous portion of the current signal.
[0201] Second inventive aspect, e.g. aspect B In the following, inter alia, embodiments related to using predetermined weighting values (see e.g. “Simplification of cross channel prediction”), both for single hypothesis and multi hypothesis cases are discussed.
[0202] An embodiment according to the invention comprises an apparatus for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using a weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally using a weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)), and wherein the apparatus is configured to set a first weighting value (e.g. lambdaO), defining a weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) to a first default value.
[0203] According to an embodiment of the invention, the apparatus is configured to switch between a first mode, in which the apparatus determines the first weighting value (e.g. lambdaO), defining the weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr), in dependence on a previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously encoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) (and optionally of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize)), and
[0204] a second mode, in which the apparatus uses the predetermined default values for the first weighting value,
[0205] as a selected mode, and wherein the apparatus is configured to encode a signaling information, indicating the selected mode.
[0206] According to an embodiment of the invention, the apparatus is configured to obtain the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using an additive offset value (e.g. b), and wherein the apparatus is configured to determine the additive offset value (e.g. b) in dependence on a previously encoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on a corresponding (e.g. time-shifted) previously encoded portion of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) both in the first mode and in the second mode.
[0207] According to an embodiment of the invention, the apparatus is configured to determine the additive offset value (e.g. b) using a computation of a mean difference value (e.g. b) between a previously determined template portion of the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. Y[c][iStart-templateSize+j for 0<=j<templateSize]) and predicted values for the template portion (e.g. Y[cprev][iStart-offsetValFirst-templatesize+j for 0<=j<templateSize or Y[cprevO][iStart-offsetValFirst-templateSize+j]+Y[cprev1][iStart-offsetValSecond-templateSize+j] )(e.g. obtained using a prediction function in which a weighting of sample values of the first other channel (e.g.1 or 1 / 2) and of the second other channel (e.g. 1 or 1 / 2) are predetermined, and in which a temporal offset (e.g. offsetVal First) of sample values of the first other cannel and a temporal offset (e.g. offsetValSecond) of sample values of the second other channel are predetermined).
[0208] According to an embodiment of the invention, the apparatus is configured to obtain the additive offset value b according to
[0209]
[0210] 0 < j < templateSize.
[0211] wherein templateSize describes an extension of the template (e.g. the template portion) (e.g. a fixed number of samples on the left boundary, e.g. 16, of a block of samples, of which Y[c] is part of); wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index; wherein cprev is a channel index of the first other channel; wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetValFirst describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices (e.g. in case of a single hypothesis cross channel prediction, wherein, for example, lambda is set to 1), or wherein the apparatus is configured to obtain the additive offset value b according to
[0212]
[0213] wherein templateSize describes an extension of the template (e.g. the template portion) (e.g. a fixed number of samples on the left boundary, e.g. 16, of a block of samples, of which Y[c] is part of); wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index; wherein cprevO is a channel index of the first other channel; wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetVal First describes a temporal offset of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein offsetValSecond describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein cprevl is a channel index of the second other channel; wherein b is the additive offset value, (e.g. in case of a multi hypothesis cross channel prediction, wherein, for example, lambda is set to 1 or to 1 / 2).
[0214] Third inventive aspect, e.g. aspect C. In the following, inter alia, embodiments related to a transmission of channel indices for crosschannel prediction are discussed.
[0215] An embodiment according to the invention comprises an apparatus for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] forO<=j<bsCurr)); wherein the apparatus is configured to obtain a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0216] According to an embodiment of the invention, the apparatus is configured to obtain the channel index (e.g. cPrevO) determining (e.g. defining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on the channel index (e.g. cPrevOPred) of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a predictive encoding.
[0217] According to an embodiment of the invention, the apparatus is configured to obtain the channel index (e.g. cPrevO) determining (e.g. defining) the first other channel, which is used to obtain the plurality of prediction values for the current portion (e.g. for time indices iStart + j for 0<=j<bsCurr) of the current signal, in dependence on the channel index (e.g. cPrevOPred) of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a difference information (e.g. cPrevODiff) describing a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevOPred) and a channel index of the first other channel (e.g. cPrevO), which is used to obtain the plurality of prediction values for the current portion of the current signal. According to an embodiment of the invention, the apparatus is configured to determine a channel difference information (e.g. according to cPrevO=cPrevOPred+cPrevODiff) which describes a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal (e.g. cPrevOPred) and a channel index of the first other channel (e.g. cPrevO), which is used to obtain the plurality of prediction values for the current portion of the current signal; and wherein the apparatus is configured to encode a channel difference information (e.g. an entropy-encoded the channel difference information; e.g. an arithmetically encoded channel difference information) in the encoded representation.
[0218] Fourth inventive aspect, e.g. aspect D.
[0219] In the following, inter alia, embodiments related to a filtering of Cross-Channel Prediction are discussed.
[0220] An embodiment according to the invention comprises aAn apparatus for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the apparatus is configured to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally also in dependence on a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the apparatus is configured to apply a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of prediction values, and / or wherein the apparatus is configured to apply a filtering (e.g. a full pel filtering or a full-pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of previously encoded values, and / or wherein the apparatus is configured to apply a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to a plurality of predicted template values (e.g. Y[cprevO] [iStart-offsetValFirst-templateSize+j] used for a determination of one or more prediction parameters (e.g. lambdaO, lambda1, b).
[0221] According to an embodiment of the invention, the filtering is configured to provide a filtered value at a given position (e.g. having a given sample index) using one or more input values at one or more positions preceding the given position (e.g. having one or more sample indices which are smaller than the given sample index), and wherein the filtering is configured to provide a filtered value at a given position (e.g. having a given sample index) using one or more input values at one or more positions following the given position (e.g. having one or more sample indices which are larger than the given sample index).
[0222] According to an embodiment of the invention, the apparatus is configured to perform the filtering using a N-tap filter (e.g. a N-tap pel filter or a N-tap half-pel filter) (wherein, for example, the N-tap filter may comprise one or more taps on a first side (e.g. before or “to the left”) of a tap associated with a current filter position (e.g. defined by a sample index of a current output value of the filtering) an wherein, for example, the N-tap filter may comprise one or more taps on a second side (e.g. behind or “to the right”) of a tap associated with the current filter position ).
[0223] According to an embodiment of the invention, the apparatus is configured to obtain an extended portion of prediction values (e.g. extended by fPdL sample values to the left, and extended by fPdR sample values to the right), which comprises more values (e.g. by fPdl + fPdR more sample values) than a filtered portion (e.g. sequence) of prediction values (which is used as a sequence of prediction values), and wherein the apparatus is configured to apply the filtering (e.g. a filtering using a filter having fPdl+fPdR+1 taps) to the extended portion of prediction values, to obtain the filtered portion of prediction values (wherein the filtered portion of prediction values comprises a smaller number of values than the extended portion of prediction values, e.g. due to the extension of the filter); or wherein the apparatus is configured to obtain an extended portion of previously encoded values, which comprises more values than a filtered portion of previously encoded values, and wherein the apparatus is configured to apply the filtering to the extended portion of previously encoded values, to obtain the filtered portion of previously encoded values (wherein the filtered portion of previously encoded values comprises a smaller number of values than the extended portion of previously encoded values, e.g. due to the extension of the filter); or wherein the apparatus is configured to obtain an extended template portion, which comprises more values than a filtered template portion, and wherein the apparatus is configured to apply the filtering to the extended template portion, to obtain the filtered template portion (wherein the filtered template portion comprises a smaller number of values than the extended template portion, e.g. due to the extension of the filter).
[0224] According to an embodiment of the invention, the apparatus is configured to selectively obtain one or more sample values of the extended portion of prediction values using an extrapolation (e.g. using a linear regression) if one or more sample values that would be required to obtain the extended portion of prediction values are not available; or wherein the apparatus is configured to selectively obtain one or more sample values of an extended portion of previously encoded values using an extrapolation (e.g. using a linear regression) if one or more sample values that would be required to obtain the extended portion of previously encoded values are not available; or wherein the apparatus is configured to selectively obtain one or more sample values of an extended template portion using an extrapolation (e.g. using a linear regression) if one or more sample values that would be required to obtain the extended template portion are not available.
[0225] According to an embodiment of the invention, the apparatus is configured to (selectively) obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation (e.g. by PdL samples) if
[0226] iStart - offsetValFirst < fPdl,
[0227] (or, equivalently, if iStart - offsetValSecond < fPdl)
[0228] wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained, wherein offsetValFirst describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdl describes a left-sided extension of the filtering.
[0229] According to an embodiment of the invention, the apparatus is configured to (selectively) obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation (e.g. by PdR samples) if
[0230] iStart - offsetValFirst < fPdR, (or, equivalently, if iStart - offsetValSecond < fPdR)
[0231] wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained, wherein offsetValFirst describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdR describes a right-sided extension of the filtering.
[0232] According to an embodiment of the invention, the apparatus is configured to (selectively) obtain one or obtain one or more sample values of the extended template portion using an extrapolation (e.g. by PdL samples) if
[0233] iStart - offsetValFirst -templateSize< fPdl,
[0234] (or, equivalently, if iStart - offsetValSecond -templateSize< fPdl)
[0235] wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained, wherein offsetValFirst describes a temporal offset of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of the first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdl describes a left-sided extension of the filtering; and wherein templateSize describes an extension of the template.
[0236] According to an embodiment of the invention, filter coefficients of the filtering (e.g. tap weights of a finite impulse response filter) are defined as {-3,0,19,32,19,0,-3,0}.
[0237] According to an embodiment of the invention, filter coefficients of the filtering (e.g. tap weights of a finite impulse response filter) are defined as {-1, -4, 8, 29, 29, 8, -4,-1}.
[0238] According to an embodiment of the invention, the apparatus is configured to switch the filtering between a first filter characteristic (e.g. defined by filter coefficients {-3,0,19,32,19,0,-3,0}) emphasizing a single filter input value over all other filter input values in an output value of the filter and a second filter characteristic (e.g. defined by filter coefficients {-1, -4, 8, 29, 29, 8, -4,-1}) equally weighting two or more filter input values in an output value of the filter.
[0239] According to an embodiment of the invention, the apparatus is configured to switch between the first filter characteristic and the second filter characteristic in dependence on a signaling value (e.g. a one-bit signaling value; e.g. cc_pred_filter_idx), wherein the apparatus is configured to encode the signaling value in the encoded representation. According to an embodiment of the invention, the apparatus is configured to selectively enable and disable the filtering in dependence on a signaling value (e.g. a one-bit signaling value; e.g. cc_pred_filter_flag), wherein the apparatus is configured to encode the signaling value in the encoded representation.
[0240] An embodiment according to the invention comprises a method (e.g. a decoding method) for obtaining a decoded multi-channel signal (e.g. a multi-channel biomedical signal, or a multichannel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr).
[0241] An embodiment according to the invention comprises a method for obtaining a decoded multichannel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the method comprises obtaining the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c] [iStart+j] for 0<=j<bsCurr) using a weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally using a weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)), and wherein the method comprises setting a first weighting value (e.g. lambdaO), defining a weighting of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) to a first default value.
[0242] An embodiment according to the invention comprises a method for obtaining a decoded multichannel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) and optionally in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the method comprises obtaining a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0243] An embodiment according to the invention comprises a method for obtaining a decoded multichannel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal) on the basis of an encoded representation, wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously decoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetVal First +j] for 0<=j<bsCurr) (and optionally also in dependence on a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the method comprises applying a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of prediction values, and / or wherein the method comprises applying a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of previously decoded values, and / or wherein the method comprises applying a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, ora half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to a plurality of predicted template values (e.g. Y[cprevO] [iStart-offsetValFirst-templateSize+j] used for a determination of one or more prediction parameters (e.g. lambdaO, lambda1, b).
[0244] An embodiment according to the invention comprises a method for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr).
[0245] An embodiment according to the invention comprises a method for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) and optionally in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] forO<=j<bsCurr)); wherein the method comprises obtaining the plurality of prediction values (e.g. the block of prediction values or the sequence of prediction values) for the current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) using a weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) (and optionally using a weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)), and wherein the method comprises setting a first weighting value (e.g. lambdaO), defining a weighting of a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) to a first default value.
[0246] An embodiment according to the invention comprises a method for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) (and optionally in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the method comprises obtaining a channel index (e.g. cPrevO) defining (e.g. determining) the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index (e.g. cPrevOPred) of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0247] An embodiment according to the invention comprises a method for obtaining an encoded representation on the basis of a multi-channel signal (e.g. a multi-channel biomedical signal, or a multi-channel audio signal, or a multi-channel video signal), wherein the method comprises obtaining a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a current (e.g. currently considered) channel signal (e.g. having channel index c)(e.g. pred[c][iStart+j] for 0<=j<bsCurr) in dependence on a plurality of previously encoded values (e.g. a of a block of prediction values or a sequence of prediction values) of a first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) (and optionally also in dependence on a plurality of previously encoded values (e.g. of a block of prediction values or a sequence of prediction values) of a second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSecond +j] for 0<=j<bsCurr)); wherein the method comprises applying a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, ora half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of prediction values, and / or herein the method comprises applying a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, ora half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to the plurality of previously encoded values, and / or wherein the apparatus method comprises applying a filtering (e.g. a full pel filtering or a full- pel interpolation filtering, or a half-pel interpolation filtering) (e.g. a finite-impulse-response filtering) (e.g. an interpolation filtering having a filtering kernel of finite length) (e.g. an interpolation filtering considering a plurality of values at positions preceding a predetermined position and considering a plurality of values at positions following the predetermined position, in order to obtain a filtered value ) to a plurality of predicted template values (e.g. Y[cprevO] [iStart-offsetValFirst-templateSize+j] used for a determination of one or more prediction parameters (e.g. lambdaO, lambda1, b).
[0248] An embodiment according to the invention comprises a computer program for performing the method according to any of aspects 82, 83, 84, 85, 86, 87, 88 or 89 when the computer program runs on a computer.
[0249] An embodiment according to the invention comprises an encoded representation (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an encoded representation of a plurality of signal values of a signal (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal); and a signaling information (e.g. an encoded flag or an encoded value) (e.g. bm_pred_mult_hyp_flag) indicating whether a prediction, which is to be used to obtain a plurality of prediction values (e.g. a block of prediction values or a sequence of prediction values) for a portion of a channel signal, should be based on a single other channel signal, or on two other channel signals.
[0250] According to an embodiment of the invention, the encoded representation comprises an encoded representation of one or more temporal prediction offset values.
[0251] An embodiment according to the invention comprises an encoded representation (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an encoded representation of a plurality of signal values of a signal (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal); and a signaling information indicating whether a decoder decoding the encoded representation should operate in a first mode, in which the decoder determines a first weighting value (e.g. lambdaO), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the first other channel (e.g. having channel index cprevO) (e.g. Y[cprevO] [iStart-offsetValFirst +j] for 0<=j<bsCurr) in a weighted combination, in dependence on a previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding (e.g. time-shifted) previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize), (and in which the apparatus optionally also determines a second weighting value (e.g. lambda1), defining a contribution of a plurality of previously decoded values (e.g. of a block of prediction values or a sequence of prediction values) of the second other channel (e.g. having channel index cprevl) (e.g. Y[cprev1] [iStart-offsetValSXeond +j] forO<=j<bsCurr) in a weighted combination, in dependence on the previously decoded portion of the current (e.g. currently considered) channel signal (e.g. having channel index c) (e.g. in dependence on a portion Y[c][iStart-templateSize + j] for 0<=j<templateSize) and in dependence on corresponding previously decoded portions of the first other channel (e.g. in dependence on a portion Y[cprevO][iStart-offsetValFirst-templateSize + j] for 0<=j<templateSize) and of the second other channel (e.g. in dependence on a portion Y[cprev1][iStart-offsetValSecond-templateSize + j] for 0<=j<templateSize) or in a second mode, in which the apparatus uses a predetermined default value for the first weighting value (and in which the decoder optionall also uses a predetermined value for the second weighting value) An embodiment according to the invention comprises an encoded representation (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an encoded representation of a plurality of signal values of a signal (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal); and a signaling information indicating whether a filtering should be applied in a decoder decoding the encoded representation when determining a prediction for a current channel signal on the basis of one or more other channel signals.
[0252] According to an embodiment of the invention, the encoded representation comprises a filter index information (e.g. a flag or an encoded value).
[0253] According to an embodiment of the invention, the filter index information is configured to allow for a selection of an interpolation filter for time interpolating between two samples of a reference signal or of a prediction signal when determining a prediction for a current channel signal on the basis of one or more other channel signals.
[0254] An embodiment according to the invention comprises an encoded representation (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal), comprising: an encoded representation of a plurality of signal values of a signal (e.g. representing a biomedical signal, or representing an audio signal, or representing a video signal); and a channel difference information (e.g. an entropy-encoded channel difference information; e.g. an arithmetically encoded channel difference information), which describes a difference between a channel index of the channel that was to be used to obtain a plurality of prediction values for a previous portion of a given signal (e.g. cPrevOPred) and a channel index of a channel (e.g. cPrevO), which is to be used to obtain a plurality of prediction values for a current portion of the given (e.g. current) signal.
[0255] According to an embodiment of the invention, the channel difference information comprises a first signaling information (e.g. cc_pred_abs_chd_greaterO_flag)(e.g. a flag or an encoded value; e.g. a one-bit flag)(e.g. a signaling information included in the encoded representation), indicating whether a difference between a channel index (e.g. cPrevO) defining (e.g. determining) a channel, which is to be used to obtain the plurality of prediction values for a current portion of the given (e.g. current) signal, and a channel index (e.g. cPrevOPred) of a channel that was to be used to obtain a plurality of prediction values for a previous portion of the given (e.g. current) signal, is different from 0. According to an embodiment of the invention, the channel difference information comprises - a second signaling information (e.g. cc_pred_abs_chd_minus1) describing a magnitude of the difference between a channel index (e.g. cPrevO) defining (e.g. determining) the channel, which is to be used to obtain the plurality of prediction values for a current portion of the given (e.g. current) signal, and a channel index (e.g. cPrevOPred) of a channel that was to be used to obtain a plurality of prediction values for a previous portion of the given (e.g. current) signal, and
[0256] - a third signaling information (cc_pred_chd_sign_flag) describing a sign of the difference between a channel index (e.g. cPrevO) defining (e.g. determining) the channel, which is to be used to obtain the plurality of prediction values for a current portion of the given (e.g. current) signal, and a channel index (e.g. cPrevOPred) of a channel that was to be used to obtain a plurality of prediction values for a previous portion of the given (e.g. current) signal.
[0257] An embodiment according to the invention comprises a data stream having encoded therein an encoded representation using any of the previously discussed methods.
[0258] Brief Description of the Drawings
[0259] The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the invention are described with reference to the following drawings, in which:
[0260] Fig. 1 a schematic view of an apparatus for obtaining a decoded multi-channel signal on the basis of an encoded representation according to embodiments of the invention;
[0261] Fig. 2 shows a schematic view of a grid of sample values according to embodiments of the invention;
[0262] Fig. 3 shows a schematic view of an apparatus for obtaining an encoded representation on the basis of a multi-channel signal according to embodiments of the invention; and
[0263] Fig. 4 shows a schematic view of an encoder for encoding a multi-channel digital signal into a data stream and decoder for decoding the multi-channel digital signal from the data stream according to an embodiment.
[0264] Detailed Description of the Embodiments Equal or equivalent elements or elements with equal or equivalent functionality are denoted in the following description by equal or equivalent reference numerals even if occurring in different figures.
[0265] In the following description, a plurality of details is set forth to provide a more throughout explanation of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail in order to avoid obscuring embodiments of the present invention. In addition, features of the different embodiments described herein after may be combined with each other, unless specifically noted otherwise.
[0266] Fig. 1 shows a schematic view of an apparatus for obtaining a decoded multi-channel signal on the basis of an encoded representation according to embodiments of the invention.
[0267] Apparatus 100 (in the following referred to as decoder 100) comprises a decoding unit 110 and a prediction value determination unit 120. Decoder 100 is provided with an encoded representation 101. Encoded representation 101 comprises an information about the multichannel signal. Decoding unit 110 is configured to provide, based on the encoded representation 101 and based on a prediction information 121 a decoded signal 102 (e.g. the decoded multi-channel signal or comprising a portion thereof).
[0268] The prediction information 121 is provided by the prediction value determination unit 120 based on an information 111 about previously decoded values, which is provided by the decoding unit 110.
[0269] As an example, the prediction value determination unit may, for example, be configured to perform a prediction based on previously decoded values (e.g. provided by information 111). Hence, prediction information 121 may comprise prediction values (e.g. predicted values) for a current channel signal, e.g. for a block or portion of a currently decoded set of sample values thereof.
[0270] Such prediction values may, for example, be corrected (e.g. by decoding unit 100) using a prediction residual, which may, for example, be included in the encoded representation 101, in order to obtain one or more decoded values, for example, for the current channel. Optionally, the encoded representation 101 may, for example, comprise a parameter information for setting prediction parameters of the prediction value determination unit. Hence, as an example, the encoded representation 101 may be provided to the prediction value determination unit 120, e.g. to obtain respective prediction parameters. For example, a decoded version of the prediction parameters may as well be provided to the prediction value determination unit 120 by the decoding unit 110.
[0271] Optionally (e.g. according to a first aspect of the invention, e.g. aspect A), decoder 100 (e.g. prediction value determination unit 120) may, for example, be configured to obtain a plurality of prediction values for a current channel signal (e.g. included in information 121) in dependence on a plurality of previously decoded values of a first other channel and in dependence on a plurality of previously decoded values of a second other channel. Hence, the information 111 about previously decoded values may comprise an information about the previously decoded values of the first other channel of the second other channel.
[0272] Optionally (e.g. according to a second aspect of the invention, e.g. aspect B), decoder 100 (e.g. prediction value determination unit 120) may, for example, be configured to obtain a plurality of prediction values for a current channel signal (e.g. included in information 121) in dependence on a plurality of previously decoded values of a first other channel (e.g. provided to the prediction value determination unit 120 via information 111) using a weighting of a plurality of previously decoded values of the first other channel, and to set a first weighting value, defining a weighting of a plurality of previously decoded values of the first other channel to a first default value.
[0273] Optionally (e.g. according to a third aspect of the invention, e.g. aspect C), decoder 100 (e.g. prediction value determination unit 120) may, for example, be configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously decoded values of a first other channel and to obtain a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal (e.g. included in information 121), in dependence on a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0274] As an example, the encoded representation 101 may optionally comprise a residual channel index information, based on which the prediction value determination unit 120 may obtain the channel index defining the first other channel. Optionally, (e.g. according to a fourth aspect of the invention, e.g. aspect D), decoder 100 (e.g. prediction value determination unit 120) may, for example, be configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously decoded values of a first other channel and to apply a filtering to the plurality of prediction values, and / or to apply a filtering to the plurality of previously decoded values, and / or to apply a filtering to a plurality of predicted template values used for a determination of one or more prediction parameters.
[0275] Hence, prediction value determination unit 120 may, for example, comprise a filtering functionality.
[0276] It is to be noted that the above-discussed features, e.g. according to aspects one to four or respectively A to D may be used as alternatives to one another or in any combination.
[0277] With respect to the individual and combined functionalities of decoder 100, reference is made to Fig. 2. Fig. 2 shows a schematic view of a grid of sample values according to embodiments of the invention.
[0278] Fig. 2 shows sample values X[c][i], 201, having channel indices c and sample indices i. Hence, each row may correspond to a plurality of temporally adjacent samples of a single channel, and each column may correspond to samples of different channels at a same point in time.
[0279] Area 202 may indicate a current portion, e.g. a block of samples, of a current channel signal, e.g. for channel c = cCurr and sample indices iStart <= i < iEnd, e.g. comprising sample values X[c=cCurr][iStart <= i < iEnd], bSCurr, 203, may represent a size of the current portion 202 of the current channel.
[0280] As an example, samples for the current channel c=cCurrwith i<iStart and samples for channels preceding the current channel with c<cCurr and with i<iEnd may be decoded already.
[0281] Accordingly, area 204 may indicate previously decoded (e.g. reconstructed) sample values. As an example, a decoding may be performed on a channel-per channel basis and block-wise, e.g. as indicated by arrow 200. Hence, portion 202 may represent a border between already reconstructed values, see 204, and not yet decoded values. Previously reconstructed sample values of area 204 will be referred to as Y[c][i], In the following, different optional functionalities of decoder 100 will be discussed in the context of Fig. 2. It is to be noted that these functionalities may be used both individually or taken in combination.
[0282] Optionally, for reconstructing sample value 205 of the current channel cCurr, decoder 100 (e.g. prediction value determination unit 120) may, for example, be configured to obtain a prediction value 206 in dependence on (see arrows 207a and 208a) a previously decoded value 207 of a first other channel, cPrevO, and in dependence on a previously decoded value 208 of a second other channel, cPrevl.
[0283] Here, it is to be noted that the prediction functionalities discussed above and respectively in the following may also be performed block-wise, e.g. for a plurality of samples. For example, in such a case, for a block 202, a prediction block may be obtained, for example, based on a block comprising decoded sample value 207 and one or more neighboring sample values and based on a block comprising decoded sample value 208 and one or more neighboring sample values.
[0284] Hence, in another interpretation of Fig. 2, a square in Fig. 2 may, according to some embodiments, be understood as a block comprising a respective plurality of samples and area 202 may correspond to an aggregation of several blocks.
[0285] Also, a prediction value for a single sample value, e.g. 206, may, for example, be obtained based on a block or portion of a plurality of previously decoded values (e.g. comprising decoded sample value 207 and one or more neighboring samples values and / or comprising decoded sample value 208 and one or more neighboring sample values).
[0286] In particular, the prediction may comprise a filtering, wherein a prediction value, e.g. 206, is obtained based on a filtering of several previously decoded sample values, e.g. based on a filtering of a block of several previously decoded sample values.
[0287] As an optional feature, prediction value 206 may, for example be determined based on a weighted combination of previously decoded values 207 and 208.
[0288] As indicated in Fig. 2, the prediction value 206 for the current channel c=cCurr may not only be obtained by previously reconstructed sample values that are associated with different channels but as well with different temporal offsets. Here, as an example, sample value 207 is temporally offset to sample 205 with a first temporal offset offsetValFirst 209 and sample value 208 is temporally offset to sample 205 with a second temporal offset offsetValSecond 210.
[0289] Hence, the prediction may be performed based one or more on time-shifted and channel-shifted previous sample values. An information about respective temporal offset information may, for example, be included in the encoded representation 101.
[0290] As an optional feature, prediction value 206 may, for example, be obtained using an additive offset value. Hence, prediction value 206 may, for example, be based on a weighted and additively offset combination of sample values 207 and 208.
[0291] pred[c = cCurr][iStart + j] = λ₀ · Y[c_prev0][iStart - offsetValFirst + j ]
[0292]
[0293] 0 < j < bSCurr
[0294] with prediction value pred, and weighting factors λ₀ and λ₁ for the first and respectively second channel signal and with offset b.
[0295] Such an additive offset value, as well as respective weighting values for the samples 207, 208 of the first and second channel signal may, for example, be determined in dependence on a previously decoded portion (see sample 212 and neighboring (arrow 216)) of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel (see samples 213 and 214 and neighboring (arrows 216’ and 216”) and see e.g. arrow 215a, as will be discussed in more detail in the following).
[0296] As an example, sample value 212 is indicated as a previously reconstructed sample of the currently considered channel cCurr, within a template portion of previously reconstructed samples. A size of the template portion is indicated with templateSize 211.
[0297] It was recognized that an estimation or approximation of optimal weights and / or of an optimal offset value for a current prediction (see 207a, 208a) may be obtained based on an evaluation of a prediction error of a preceding, corresponding prediction (see 213a, 214a).
[0298] For the prediction value of sample value 205, temporally offset (via offsetValFirst and offsetValSecond) and channel-offset (cCurr-cPrevO and cCurr-cPrev1) sample values 207 and 208 are considered. Hence, a prediction error of this prediction of sample value 205 may correspond to a prediction error for a prediction of sample value 212 using correspondingly temporally offset (via offsetVal First and offsetValSecond) and channel-offset (cCurr-cPrevO and cCurr-cPrev1) sample values 213 and 214.
[0299] Hence, an information 215 about a prediction error may be obtained based on a comparison of reconstructed sample value 212 and a prediction value for sample value 212 based on sample values 213 and 214.
[0300] In addition, it was recognized that a more precise and more robust information about a prediction error to be expected for the prediction of sample value 205 may be obtained, when comparing a plurality of reconstructed sample values and prediction values (see 212’, 213’, 214’, 215’) for said reconstructed sample values.
[0301] As an example, a prediction error information may be obtained based on a plurality of comparisons, 215”, of sample values (and respective prediction values for said sample values) within the template portion, see 216 (and correspondingly 216’ and 216”).
[0302] Hence, as an example a prediction error may, be determined as
[0303]
[0304] — Ao• Y[cprev0][iStart - offsetValFirst — templateSize + j ] —r• Y[cprevl][iStart - offsetValSecond — templateSize + j ] — b)2, 0 < j < templateSize.
[0305] Hence, in other words, a plurality of differences 215, 215’, 215” between reconstructed sample values, Y[c=cCurr][iStart-templateSize + j] (see 212 and following according to arrow 216) and prediction values for these sample values, e.g. λ₀ · Y[c_prev0][iStart - offsetValFirst -
[0306]
[0307] (see 213, 214 and following according to arrows 216’, 216”) may be determined, so as to obtain a plurality of prediction error estimates, for sample values of the template portion, which are added up (e.g. as a mean difference value) and minimized with respect to the weights and / or offset for the prediction of sample value 205. As an example, prediction value determination unit 120 may, for example, be configured to obtain (see 215a) the weights, e.g. λ₀ and / or the offset value, e.g. b, as a solution of a linear equation system, e.g. describing the above-discussed prediction error for the template portion.
[0308] As discussed above, prediction value determination unit 120 may, for example, be configured to determine only the additive offset value based on an evaluation of such a prediction error. As an example, the prediction value determination unit 120 may, for example, be configured to set one or more of the weighting values for the contributions of the samples 208 or 207 to respective default values. Hence, for example, only an optimized additive offset, e.g. b, is determined.
[0309] Optionally, the prediction value determination unit 120 may, for example, be configured too selectively switch between a first mode, in which the weighting values are determined and a second mode, in which the weighting values are set to predetermined default values, based on a signaling information included in the encoded representation 101.
[0310] Furthermore, the above-discussed prediction for obtaining prediction value 206 for sample value 205 may be considered a multi-hypothesis prediction, since the prediction is performed based on sample values of multiple other channels, e.g. cPrevO and cPrevl. Naturally, the prediction value determination unit 120 may, for example, be configured to obtain the prediction value 206 only based on sample values of only a single other channel.
[0311] As an optional feature, prediction value determination unit 120 may, for example, be configured to switch between a single hypothesis mode and a multi hypothesis mode. The switching may, for example, be performed based on signaling information included in the encoded representation 101.
[0312] Here, it is to be noted that optionally, decoder 100 may, for example, be configured to determine prediction values for a current channel signal without considering a second other channel, e.g. without having a multi-hypothesis operating mode.
[0313] In particular, decoder 100, e.g. prediction value determination unit 120 may, for example, be configured to obtain one or more prediction values, e.g. 206, for the current channel signal, e.g. having channel index cCurr, using a weighting of a plurality of previously decoded values of the first other channel, e.g. cPrev0=cPrev, and to set a first weighting value, e.g. λ₀, defining a weighting of a plurality of previously decoded values of the first other channel to a first default value. This aspect (e.g. B) may, for example, be implemented independently of the previously discussed aspect (e.g. A). However, this aspect may also be used in combination with the above aspect.
[0314] Hence, any of the above-discussed optional features may be applied, as shown in Fig. 2, e.g. without considering the signal of the second channel cPrevl.
[0315] Hence, in a first mode, the prediction value determination unit 120 may, for example, be configured to determine the first weighting value, e.g. λ₀, in dependence on a comparison, e.g. differences 215, between predicted values and reconstructed values for the current channel, e.g. in a template portion thereof, see 211, wherein the predicted values forthe current channel may be based on corresponding previously decoded portions of the first other channel, see 214,216”.
[0316] In the second mode, the prediction value determination unit 120 may, for example, use the predetermined default values for the first weighting value, e.g. λ₀.
[0317] As mentioned previously, a switching may, for example, be performed in dependence on a signaling information included in the encoded representation 101.
[0318] However, optionally, irrespective of the mode, the prediction value determination unit 120 may be configured to determine the additive offset value in dependence on respective prediction error estimates, e.g. 215, e.g. as discussed before, but without considering the channel signal of a second channel cPrevl.
[0319] As an example, the prediction value determination unit 120 may be configured to obtain the additive offset value b according to
[0320]
[0321] 0 < j < templateSize
[0322] e.g. for the single-hypothesis case, or according to
[0323]
[0324] e.g. for the multi-hypothesis case.
[0325] As another inventive feature, e.g. to be used independent or in combination to the abovediscussed features, the decoder 100 may be configured to obtain a channel index, e.g. cPrevO, defining the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal, in dependence on a channel index, e.g. cPrevOPred, of a channel used to obtain a plurality of prediction values for a previous portion of the current signal. This aspect (e.g. C) may, for example, be implemented independently of the previously discussed aspects (e.g. A and / or B). However, this aspect may also be used in combination with the above aspects.
[0326] Hence, as an example, not only sample values may be encoded predictively, but as well channel indices. As an example, a sample value area 217 is indicated in Fig. 2. For reconstructing the sample values of area 217, a prediction as discussed previously for area 202 may have been performed in a previous prediction step.
[0327] Hence, sample values of area 217 may have been predicted based on one or more channel signals of one or more other channels, e.g. cPrevOPred and / or cPrevIPred.
[0328] Now, for the current portion 202, instead of fully transmitting the channel indices cPrevO and cPrevI, the channel indices cPrevO and cPrevI may be determined based on channel index cPrevOPred and / or cPrevIPred of the one or more channels used to obtain a plurality of prediction values for the previous portion, 217, of the current signal.
[0329] For example, in some cases cPrevOPred and / or cPrevIPred may be identical to cPrevO and cPrevI. In other cases, a residual information may be provided to obtain cPrevO and / or cPrevI based on cPrevOPred and cPrevIPred. For example, such a channel difference information or channel index residual information may be provided in encoded representation 101.
[0330] In a subsequent prediction step, cPrevO and cPrevI may become the new cPrevOPred and cPrevIPred. The residual information may hence be or comprise a difference information, e.g. cPrevODiff, e.g. cPrevI Diff, e.g. in the form of cPrevODiff = cPrevO - cPrevOPred, e.g. cPrevI Diff = cPrevI - cPrevI Pred.
[0331] This may allow a particularly efficient signaling of the difference information. Encoded representation 101 may optionally comprise a first signaling information indicating whether a difference between channel index cPrevO and cPrevOPred is different from 0, hence, if there is a channel index residual. Accordingly, if there is a residual encoded representation 101 may further comprise a second signaling information, e.g. cc_pred_abs_chd_minus1, describing a magnitude of the difference and a third signaling information, e.g. cc_pred_chd_sign_flag, describing a sign of the difference. Optionally, decoder 100 may be configured to add 1 to the value represented by the second signaling information, in order to derive the actual magnitude.
[0332] Decoder 100 may, be configured to selectively obtain and evaluate such a second and third signaling information, depending on the first signaling information, in order to determine the current channel index or current channel indices for the first and / or second other channel, e.g. cPrevO, e.g. cPrevI.
[0333] Furthermore, as an optional feature, which may be used in combination or as an alternative to the above-discussed aspects, decoder 100, e.g. prediction value determination unit 120, may, for example, be configured to apply a filtering to the plurality of prediction values, e.g. the prediction values obtained for area 202, and / or to apply a filtering to the plurality of previously decoded values (e.g. values 207 and neighboring sample values, e.g. values 208 and neighboring sample values, e.g. values 212 and neighboring sample values), and / or to apply a filtering to a plurality of predicted template values used for a determination of one or more prediction parameters (e.g. obtained based on values 207 and neighboring sample values and / or based on values 208 and neighboring sample values), prediction parameters being, as an example, weights, e.g. λ₀ and optionally and / or the offset value, e.g. b. This aspect (e.g. D) may, for example, be implemented independently of the previously discussed aspects (e.g. A and / or B and / or C). However, this aspect may also be used in combination with the above aspects.
[0334] Hence, prediction information 121 may, for example be a prediction information obtained based on one or more of the above-filterings. Hence, as an example, a filtering can be applied to pred[c][iStart + j] after the prediction was created or it can be applied to the underlying signal in the one or more reference channels, e.g. cPrevO and / or cPrevI.
[0335] As an example, in some instances, temporal offsets that are smaller than the sampling rate may occur. Hence, an interpolation between sample values, using a respective filtering, may, for example, improve the prediction.
[0336] Hence, based on such a filtering, a filtered value at a given position using one or more input values at one or more positions preceding the given position and / or using one or more input values at one or more positions following the given position may be provided.
[0337] As an example, for the sample value X[c=cCurr][iStart+1], a filtering based on prediction values for the samples of area 202, e.g. at [c=cCurr][iStart <= i < iEnd], may be performed.
[0338] For a respective filtering functionality, prediction value determination unit 120 may, for example, be configured to apply a N-tap filter, e.g. a N-tap pel filter or a N-tap half-pel filter.
[0339] As an optional feature, for example in case a filtered sample or prediction value is to be obtained based on a sequence of sample or prediction values that does not have enough sample or prediction values for the filtering, then the sequence may be extended, e.g. by use of extrapolation. Such an extension may be performed in one or both neighboring sample directions, e.g. with respect to the grid of Fig. 2 to the left or to the right.
[0340] In other words, decoder 100, e.g. prediction value determination unit 110, may, for example, be configured to obtain an extended portion of prediction values and / or an extended portion of previously decoded values and / or an extended template portion, which comprises more values than a filtered portion (or for example a portion that is to be filtered) of prediction values and / or than a filtered portion (or for example a portion that is to be filtered) of previously decoded values and / or a filtered template portion (or for example a portion that is to be filtered), in order to apply the filtering to the respective extended portion.
[0341] Decoder 100, e.g. prediction value determination unit 110, may, for example, be configured to obtain respective sample values of such an extended portion using an extrapolation to obtain sufficient sample values for the filtering. Hence, as an example, if there is insufficient data, e.g. sample values, available to perform the filtering, lacking data, e.g. sample values, may be approximated, e.g. by way of extension, e.g. by way of extrapolation.
[0342] In particular, such an extension may be performed in increasing temporal direction or decreasing temporal direction, hence simply speaking, in Fig. 2 to the left or to the right.
[0343] As an example, fPdL may denote a length to the left of the used filter, e.g. 3 for an 8-tap half-pel filter and fPdR may denote a length to right of the used filter, e.g. 4 for an 8-tap half-pel filter. As an example, respective filter coefficients may emphasize a single filter input value over all other filter input values, e.g. with filter coefficients {-3,0,19,32,19,0,-3,0}, or may equally weigh two or more filter input values, e.g. with filter coefficients {-1, -4, 8, 29, 29, 8, -4,-1}.
[0344] As an example, the prediction value determination unit 120 may be configured to switch between different filter characteristics, such as the above, based on a signaling value included in the encoded representation 101. Furthermore, encoded representation 101 may optionally comprise a signaling value, e.g. a one-bit signaling value; e.g. cc_pred_filter_flag, based on which the prediction value determination unit 120 may selectively enable or disable the filtering.
[0345] Hence, as an example, if
[0346] iStart - offsetVal First < fPdl and / or iStart - offsetValFirst < fPdR, and / or
[0347] iStart - offsetValSecond < fPdl and / or iStart - offsetValSecond < fPdR; and / or if
[0348] iStart - offsetValFirst -templateSize< fPdl, and / or if
[0349] iStart - offsetValSecond -templateSize< fPdl,
[0350] respectively lacking, or unavailable sample or prediction values may be extrapolated.
[0351] As a general remark, the processing as discussed above regarding obtaining prediction values, such as 206 for a block of samples 202 is to be understood as an example to illustrate the principles of the invention.
[0352] Hence, as discussed, based on one or more temporally offset (see offsetValFirst and / or offsetValSecond) sample values of one or more other channels, such as 207 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevO and / or such as 208 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevI, a prediction value 206 for a currently considered channel, e.g. cCurr may be obtained. The prediction may, for example, be performed in the form of a weighted (λ0
[0353]
[0354] and / or offset (e.g. b) combination of sample values 207, 208 (or of respective sequences of sample values comprising sample values 207 and / or 208), wherein respective weights and / or the offset may be obtained based on “historic”, hence already previously decoded”, sample values.
[0355] Accordingly, based on comparing (e.g. by way of difference) sample values 212 and following, see 216 of the current channel, with a predicted value for the respective sample value 212 and following, e.g. based on sample values 213 and following, see 216’ and / or 214 and following, see 216”, of the first and / or second other channel, a prediction error minimization for obtaining optimized weights and the offset for the current prediction may be performed.
[0356] Furthermore, for example, in case temporal offsets that are smaller than the sampling rate occur in the signal, a prediction may be improved, if performed based on a non-integer temporal sample value offset, e.g. wherein offsetValFirst is not 2 but 2.3. Hence, using a filtering, sample values in between sample indices can be interpolated. Furthermore, the filtering introduces further degrees of freedom, such as filter coefficients which enable an optimization of the prediction.
[0357] Here, it is to be noted that such a filtering may be applied to any sequence of sample values or predicted values used to obtain the prediction values for are 202.
[0358] For example, predicted template values, such as predicted values for 212 (and neighboring samples) may be filtered. However, as predicted values for 212 (and neighboring samples) may be obtained using sample values 207 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevO and / or using sample values 208 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevI, these sample values 207 (e.g. in addition to neighboring, previously decoded samples) and / or 208 (e.g. in addition to neighboring, previously decoded samples) may be filtered.
[0359] Accordingly, sample values 212 (e.g. in addition to neighboring, previously decoded samples) may also be filtered. Hence, for example, the determination of optimized weights and / or or the offset value may be performed based on filtered versions of the respective sample values.
[0360] Accordingly, sample values 207 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevO and / or sample values 208 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevI may be filtered. However, in some cases, there may not be enough sample values available to perform the filtering. Hence, such sample values (and / or respectively prediction values and / or respectively predicted values) may be approximated, e.g. by copying neighboring sample values, e.g. by way of extrapolation.
[0361] Here, it is to be noted that applying a filtering to prediction values, e.g. pred[c][iStart + j] after the prediction was created may, for example, be understood, as first, obtaining an combination of the first and optionally second channel signal, e.g. the above-discussed weighted combination of sample values 207 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevO and / or sample values 208 (e.g. in addition to neighboring, previously decoded samples) of channel cPrevI to obtain a prediction value sequence (e.g. for sample values of area 202, e.g. a sequence of prediction values) without filtering, e.g. as if the temporal offsets are in line with the sampling rate and then filtering the obtained sequence of prediction values, to account for the temporal offsets being different, e.g. smaller than the sampling rate (e.g. as an alternative to filter the underlying sample values and then performing the weighted combination).
[0362] As a general remark, it is to be noted that the terms “prediction value” and “predicted value”, may, according to some examples, be used interchangeably, with a predicted value being a value which is obtained based on a prediction, hence, e.g. a prediction value.
[0363] However, in order to obtain a respective decoded or reconstructed value, a prediction value may, optionally, be corrected using an optional residual information. Hence, as an example, such a respective decoded or reconstructed value may as well be considered a predicted value, e.g. as a corrected prediction value, e.g. as a combination of the prediction value with a prediction residual.
[0364] Next, reference is made to Fig. 3. Fig. 3 shows a schematic view of an apparatus for obtaining an encoded representation on the basis of a multi-channel signal according to embodiments of the invention.
[0365] Apparatus 300 (in the following referred to as encoder 300) comprises an encoding unit 310 and a prediction value determination unit 320. Encoder 300 is provided with a signal 301 (e.g. the multi-channel signal or a portion thereof) to be encoded. Encoder 300 is configured to provide, e.g. using encoding unit 310, based on the signal 301 and based on a prediction information 321, an encoded representation 302. Encoded representation 302 comprises an information about the multi-channel signal.
[0366] The prediction information 321 is provided by the prediction value determination unit 320 based on an information 311 about previously encoded values, which is provided by the encoding unit 310.
[0367] As an example, the prediction value determination unit may 320, for example, be configured to perform a prediction based on previously encoded values (e.g. provided by information 311). Hence, prediction information 321 may comprise prediction values (e.g. predicted values) for a current channel signal.
[0368] Based on such prediction values and the signal 301, as an example, a prediction residual may, optionally, be obtained and included in the encoded representation 302, e.g. by encoding unit 310.
[0369] Optionally, the encoded representation 302 may, for example comprise a parameter information about prediction parameters of the prediction value determination unit 320. Hence, as an example, such prediction parameters may be included in the prediction information 321, in order to be included in the encoded representation 301 by encoding unit 310.
[0370] Optionally (e.g. according to a first aspect of the invention, e.g. aspect A), encoder 300 (e.g. prediction value determination unit 320) may, for example, be configured to obtain a plurality of prediction values for a current channel signal (e.g. included in information 321) in dependence on a plurality of previously encoded values of a first other channel and in dependence on a plurality of previously encoded values of a second other channel. Hence, the information 311 about the previously encoded values may comprise an information about the previously encoded values of the first other channel of the second other channel.
[0371] Optionally (e.g. according to a second aspect of the invention, e.g. aspect B), encoder 300 (e.g. prediction value determination unit 320) may, for example, be configured to obtain a plurality of prediction values for a current channel signal (e.g. included in information 321) in dependence on a plurality of previously encoded values of a first other channel using a weighting of a plurality of previously encoded values of the first other channel (e.g. provided to the prediction value determination unit 320 via information 311), and to set a first weighting value, defining a weighting of a plurality of previously encoded values of the first other channel to a first default value.
[0372] Optionally (e.g. according to a third aspect of the invention, e.g. aspect C), encoder 300 (e.g. prediction value determination unit 320) may, for example, be configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously encoded values of a first other channel and to obtain a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
[0373] As an example, the encoder 300, e.g. using encoding unit 310, may be configured to provide a residual channel index information, based on which a decoder-sided prediction value determination unit 120 may obtain the channel index defining the first other channel in the encoded representation 302.
[0374] Optionally, (e.g. according to a fourth aspect of the invention, e.g. aspect D), encoder 300 (e.g. prediction value determination unit 320) may, for example, be configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously encoded values of a first other channel, and to apply a filtering to the plurality of prediction values, and / or to apply a filtering to the plurality of previously encoded values, and / or to apply a filtering to a plurality of predicted template values used for a determination of one or more prediction parameters.
[0375] Hence, prediction value determination unit 320 may, for example, comprise a filtering functionality.
[0376] It is to be noted that the above-discussed features, e.g. according to aspects one to four or respectively A to D may be used as alternatives to one another or in any combination.
[0377] The apparatus 100 (e.g. decoder 100) and the apparatus 300 (e.g. encoder 300) may, comprise same or corresponding prediction value determination units 120, 320. Hence, the encoder 300 may comprise any or all of the features, functionalities and details, as discussed in the context of Fig. 1 and in particular of Fig. 2 (e.g. a same or corresponding manner, both individually or taken in combination). Accordingly, encoded representation 302 may correspond to encoded representation 101. Hence, the approach shown in Fig. 2 may be applicable accordingly for apparatus 300. In this case, area 204 may indicate sample values already encoded, with area 202 being a block currently encoded.
[0378] Therefore, regarding a general concept according to embodiments, the encoding / decoding unit 110 / 310 may provide an information about previously encoded / decoded sample values 111 / 311 to the prediction value determination unit 120 / 320. Hence, the encoding / decoding unit 110 / 310 may provide any information required by the prediction value determination unit 120 / 320 about sample values (previously encoded / decoded) of area 204.
[0379] The prediction value determination unit 120 / 320 may use respective sample values of a template portion of the currently considered portion 202, in order to determine the prediction values.
[0380] As discussed before, prediction value determination unit 120 / 320 may, for example, obtain the prediction values for the current portion of the current channel signal based on the previously encoded / decoded values of one or more other channels.
[0381] Accordingly, the encoding unit 310 may be provided with a parameter information from the prediction value determination unit 320 to encode the same in the bitstream, and vice versa, the decoder-sided prediction value determination unit 120 may be provided with said information.
[0382] Furthermore, e.g. apart from the prediction information 321, the bitstream may, optionally, comprise a residual information for the reconstruction of the sample values.
[0383] In the following, different inventive embodiments and aspects will be described in sections “Setup of cross channel prediction”, “Extension of cross channel prediction for multiple reference channels”, “Transmission of channel indices for cross channel prediction”, “Simplification of cross channel prediction”, “Filtering of cross channel prediction”, “Cross channel prediction data syntax”, “Cross channel prediction data semantics” and “Cross channel prediction decoding process”.
[0384] Also, further embodiments will be defined by the enclosed claims.
[0385] It should be noted that any embodiments as defined by the claims can be supplemented by any of the details (features and functionalities) described in the above-mentioned sections and / or by any of the details (features and functionalities) described in the preceding description, in particular in the context of Fig. 1, 2 and 3.
[0386] Also, the embodiments described in the above-mentioned sections can be used individually, and can also be supplemented by any of the features in another section, or by any feature included in the claims.
[0387] Also, it should be noted that individual aspects described herein can be used individually or in combination. Thus, details can be added to each of said individual aspects without adding details to another one of said aspects.
[0388] Moreover, features and functionalities disclosed herein relating to a method can also be used in an apparatus (configured to perform such functionality). Furthermore, any features and functionalities disclosed herein with respect to an apparatus can also be used in a corresponding method. In other words, the methods disclosed herein can be supplemented by any of the features and functionalities described with respect to the apparatuses.
[0389] Also, any of the features and functionalities described herein can be implemented in hardware or in software, or using a combination of hardware and software, as will be described in the section “implementation alternatives”.
[0390] Setup of cross channel prediction
[0391] The present application deals, inter alia, with the coding of biomedical and general waveform data. More precisely, the technology of cross channel prediction with coded offsets in both temporal and channel direction is concerned or addressed with embodiments. In general terms, this works, for example, as follows:
[0392] A waveform signal X[c][i] is to be coded, where c denotes the channel index and i denotes the sample index.
[0393] The signal may, for example, be partitioned into consecutive blocks of samples. Each block may, for example, be determined by a start index iStart and an end index iEnd and may comprise or may consist of all samples X[c][i] with iStart<=i<i End. It is optionally assumed that for a given block, the samples X[c][i] with i<iStart may, for example, be already coded (e.g. decoded or encoded). Additionally, the samples X[cprev][i] with i<iEnd and cprev< c may, for example, be also already coded. Let Y[c][i] denote, for example, the reconstructed samples in the current channel, i <iStart and Y[cprev][i] may, for example, denote the reconstructed samples in the previous channels that are optionally available in the current channel group, i< iEnd and max( c- ( DepChMask&c), O ) < cprev< c. DepChMask may, for example, denote the channel mask which may optionally restrict the cross channel prediction to channels in the same channel group. Let bSCurr = iEnd - iStart denote, for example, the current block size. Then the cross channel prediction may, for example, generate a prediction signal pred on the current block, for example, depending on a transmitted offset value offsetValFirst>=0 and / or a transmitted reference channel index cpreve.g. with max(c- ( DepChMask &c ), 0 ) < cprev< c as
[0394] pred[c][iStart + j] = A • Y[cprev] [iStart - offsetValFirst + j ] + b, 0 < j < bSCurr
[0395] The channel index cprevcan, for example, also be inferred if only one reference channel is available in the current channel group.
[0396] There are multiple ways (e.g. different optional approaches according to embodiments) how the parameters A, b can be derived. They can, for example, be calculated at the encoder to minimize the prediction error on the current block. However, this may result or would result in transmitting the parameters to the decoder which may, for example, require a large number of bits. Another possibility is, for example to determine the parameters on adjacent, already reconstructed boundary samples which are available on the decoder side. Then, the parameters A, b may, for example, be derived to minimize
[0397] ZtemplateSize-l
[0398] (Y[c][iStart — templateSize + j]
[0399]
[0400] 0 < j < templateSize,
[0401] where templateSize may, for example, denote a fixed number of samples on the left boundary, e.g. 16.
[0402] If, as an example, iStart < templateSize, A is set to 1 and b is set to 0. This may, for example, result in
[0403] pred[c][iStart + j] = Y[cprev] [iStart - offsetValFirst + j ],with. O < j < bSCurr. Otherwise, the partial derivatives with respect to A and b are, for example, set equal to zero, to obtain the following linear equation system:
[0404]
[0405] where C is, for example, a symmetric matrix, for example, a symmetric 2x2 matrix and v is, for example, a column vector, for example, of size 2. The elements are given, for example, as follows, where the first subscript for the matrix may, for example, denote the column index and the second subscript may, for example, denote the row index:
[0406]
[0407] There are multiple optional ways according to embodiments, to solve the linear equation system, for example, in integer arithmetic to determine the parameters A and / or b.
[0408] Topics of embodiments of the present invention are, inter alia, the extension of the cross channel prediction to multiple reference channels and (e.g. individually or in combination) the efficient predictive transmission of the reference channel index cprevor of multiple channel indices cprev0, cprevl. Additionally (e.g. as further individual or combinational aspects), a simplification without solving a linear equation and a filtering of the prediction signal are presented.
[0409] Some embodiments will be presented in the following organized in different aspects, e.g.
[0410] • an aspect A, concerned with concepts for predicting a current channel signal based on values of at least two other channels, e.g. a concept for a cross channel prediction to multiple reference channels, • an aspect B, concerned with concepts for predicting a current channel signal using predetermined weighting values, for example, both for single hypothesis and multi hypothesis cases, e.g. without solving a linear equation system,
[0411] • an aspect C, concerned with concepts for predicting a current channel signal using cross-channel prediction and for transmitting respective channel indices for the prediction, e.g. concepts for an efficient predictive transmission of the reference channel index cprevor of multiple channel indices cprev0, cprevl, and
[0412] • an aspect D, concerned with concepts for predicting a current channel signal using a filtering
[0413] However, it is to be noted that embodiments may comprise features, functionalities and details of any of the aspects A to D both individually or taken in combination.
[0414] Extension of cross channel prediction for multiple reference channels
[0415] The prediction signal may, for example, also be generated as a superposition of multiple cross channel prediction signals from different reference channels. Here, as an example, the case with two reference channels is described but it can be extended, for example, to c-1 channels. Note that if more than one reference channel is allowed, the number of reference channels may be or may, for example, even have to be signaled in the bitstream.
[0416] Let cprev0,cprevldenote, for example, two reference channel indices, for example, with max( c- ( DepChMask&c), O ) < cprev i< c and i e {0,1} that are, for example, either transmitted in the bitstream or inferred, for example, if they are the only available reference channels in the channel group. Additionally, two offset values offsetValFirst, offsetValSecond>=0 may, for example, be transmitted. The prediction signal pred on the current block may, for example, be generated as
[0417] pred[c][iStart + j] = Ao• Y[cprev0[iStart - offsetValFirst + j]
[0418] + A-L • Y[cprevl[iStart - offsetValSecond + j ] + b,
[0419] 0 < j < bSCurr
[0420] As before, the parameters may, for example, be determined by minimizing the prediction error on the adjacent, already reconstructed samples which is given by ZtemplateSize-1
[0421] (Y[c][iStart — templateSize + j]
[0422] — Ao• Y[cprev0[iStart - offsetValFirst — templateSize + j ] — A ■ Y[cprevl][iStart - offsetValSecond — templateSize + j ] — b), 0 < j < templateSize.
[0423] If iStart < templateSize, Aoand A±may, for example, be set to 0.5 and b may, for example, be set to 0. This results in
[0424] pred[c][iStart + j] = 0.5 • Y[cprev0[iStart - offsetValFirst+ j]
[0425] + 0.5 • Y[cprevl[iStart - offsetValSecond + j ], 0 < j < bSCurr
[0426] Otherwise, setting the partial derivatives with respect to the parameters equal to zero, results in the following linear equation system:
[0427]
[0428] where C is, for example, a symmetric matrix, e.g. a symmetric 3x3 matrix and v is, for example, a column vector, for example, of size 3, for example, with the following elements:
[0429]
[0430] Go=0)2,
[0431] Gi=2 >
[0432] C22=templateSize,
[0433]
[0434] Similar to the case with one reference channel, the parameters may, for example, be determined by solving the linear equation system, for example, in integer arithmetic.
[0435] Transmission of channel indices for cross channel prediction
[0436] Embodiments of the present application deal, inter alia, with the efficient transmission of the value cprevor both values cprev0and cprevl. It can, for example, be assumed that a cross channel prediction from a previous block in the current channel may be a suitable prediction for the cross channel prediction in the current block as both signals may, for example, have a similar behavior over time.
[0437] Therefore, the reference channel index or, if applicable, indices can, for example, be transmitted predictively. Note that cprevmay, for example, equal cprev0, for example, if a singlehypothesis cross channel prediction is used. The following algorithm may, for example, be applied:
[0438] • Initialize the variables cPrevOPred and cPrevI Pred (for example by zero).
[0439] • If cross channel prediction is to be carried out on the current block, decode the differences cPrevODiff and cPrevI Diff from the bit-stream (for example, where only the first is decoded if a single-hypothesis cross channel prediction is to be carried out).
[0440] • Set the current offset values to
[0441] cPrevO = cPrevOPred + cPrevODiff
[0442] cPrevI = cPrevI Pred + cPrevI Diff,
[0443] where the second assignment may, for example, be carried out only in the case of multi-hypothesis cross channel prediction.
[0444] • Perform cross channel prediction on the current block with the values cPrevO and, if applicable, cPrevI
[0445] • Update the prediction offset parameters to
[0446] cPrevOPred = cPrevO,
[0447] cPrevI Pred = cPrevI (if applicable). Simplification of cross channel prediction
[0448] Embodiments of the present application deal, inter alia, with the simplification of the cross channel prediction. For example, instead of deriving A, b or, if applicable, AQ^, b, for example, by solving the linear equation system, optionally only an offset is determined, for example, using the boundary samples. If the single hypothesis cross channel prediction is used, A may, for example, be set to 1. For determining b, the prediction error
[0449] ZtemplateSize-l
[0450] (Y[c][iStart — templateSize + j]
[0451]
[0452] 0 < j < templateSize,
[0453] may, for example, be minimized, which results, for example, in
[0454]
[0455] 0 < j < templateSize.
[0456] Similarly, for the multi hypothesis, AoandAi may, for example, be set to 0.5, which can, for example, be implemented as
[0457] pred[c][iStart + j] = (Y[cprev0][iStart - of fsetValFirst + j]
[0458] + Y[cprevl][iStart - offsetValSecond + j ] + 1) » 1 + b, 0 < j < bSCurr
[0459] The prediction error may, for example, be minimized, e.g. if b is set to
[0460]
[0461] + Y[cprevl][iStart - offsetValSecond — templateSize + j ] + 1) » 1, 0 < j < templateSize. Filtering of cross channel prediction
[0462] Embodiments of the present application deal, inter alia, with the filtering of the cross channel prediction, for example, by a full-pel or a half-pel interpolation filter. Especially if temporal offsets that are smaller than the sampling rate occur in the signal, a half-pel interpolation filter can improve the prediction.
[0463] Let fPdL denote, for example, the denote the length to the left of the used filter, e.g. 3 for an 8-tap half-pel filter and fPdR may, for example, denotes the length to right of the used filter, e.g.
[0464] 4 for an 8-tap half-pel filter. Filtering can, for example, be applied to pred [c] [ iStart + j], for example, after the prediction was created or it can, for example, be applied to the underlying signal in the reference channel or, if applicable, for example, to both underlying signals in the reference channels.
[0465] For the former case, the prediction may, for example, be extended by fPdL sample values to the left and / or fPdR sample values to the right. If these sample values are not available in the reference channel, the values may, for example, be extrapolated, e.g by using a linear regression on, e.g. 4, sample values on the left or right boundary.
[0466] Similarly, in the latter case, for example, either the adjacent boundary samples or an extrapolation is used to create the filtered sample values in the reference channel or, if applicable, in the reference channels. For example, both the sample values for the prediction and the adjacent sample values to the left for the parameter derivation may, for example, be extended or extrapolated and the filter may, for example, be applied. Then, the parameters may, for example, be derived from the filtered sample values to the left.
[0467] The predicted sample values to the left may, for example, be extrapolated by fPdL samples if iStart - offsetValFirst < fPdL or, if applicable, iStart - offsetValSecond < fPdL. For the adjacent sample values to the left for the parameter derivation, the values may, for example, be extrapolated by fPdL samples if iStart - offsetValFirst - templateSize < fPdL or, if applicable, iStart - offsetValSecond - templateSize < fPdL. The predicted sample values may, for example, be extrapolated to the right by fPdR samples if offsetValFirst < fPdR or, if applicable, offsetValSecond < fPdR.
[0468] Next, an example, fora syntax according to embodiments is provided. Encoded representation 101, 302 may, for example, hence comprise any or all of the bitstream elements, discussed in the following. Accordingly, encoder 300 may, for example, be configured to provide such bitstream elements, and decoder 100 may, for example, be configured to receive and process the bitstream elements. In particular, decoder 100 and encoder 300 may, for example, be configured to perform the below-disclosed functionalities, e.g. respective encoder-sided and decoder-sided version thereof.
[0469] Cross channel prediction data syntax (optional example)
[0470]
[0471] All syntax elements of the above example are optional and may be modified. Cross channel prediction data semantics (optional examples).
[0472] cc_pred_offset_only_flag equal to 1 may, for example, indicate that the cross channel prediction mode is to be applied without a scaling factor.
[0473] cc_pred_filter_flag equal to 1 may, for example, indicate that the output of the cross channel prediction mode is to be filtered, where the set of filter coefficients may, for example, be determined by the syntax element cc_pred_filter_idx. When cc_pred_filter_flag is not present, it may, for example, be inferred to be 0. cc_pred_filter_idx may, for example, specify the index filterldx to derive the array CCFiltCoeffs, e.g. as specified in Table 9, e.g. for filtering the output of the cross channel prediction.
[0474] Table 9 Name association to filterldx (optional example)
[0475]
[0476] When cc_pred_filter_idx is not present, it may, for example, be inferred to be 1:
[0477] cc_pred_mult_hyp_flag equal to 1 may, for example, indicate that the cross channel prediction mode with two hypotheses is used. When cc_pred_mult_hyp_flag is not present, it may, for exmaple, be inferred to be 0.
[0478] cc_pred_abs_chd_greaterO_flag[ n ] equal to 1 may, for example indicate that the channel difference to the predicted input channel difference minus 1 for the n-th hypothesis of the cross channel prediction is not 0.
[0479] cc_pred_abs_chd_minus1[ n ] plus 1 may, for example, specify the absolute value of the channel difference to the predicted input channel difference minus 1 for the n-th hypothesis of the cross channel prediction.
[0480] cc_pred_chd_sign_flag[ n ] may, for example, specify the sign of the channel difference to the predicted input channel difference minus 1 for the n-th hypothesis of the cross channel prediction as follows:
[0481] - When cc_pred_chd_sign_flag[ n ] is equal to 0, the corresponding channel difference may, for example, have a positive sign.
[0482] - When cc_pred_chd_sign_flag[ n ] is equal to 1, the corresponding channel difference may, for example, have a negative sign.
[0483] When cc_pred_chd_sign_flag[ n ] is not present, it may, for example, be inferred to be 0.
[0484] Cross channel prediction decoding process
[0485] Input to this process are, for example:
[0486] - a variable chldx, for example, specifying the current channel, - a variable blockPos, for example, specifying the position of the first sample of the current block,
[0487] - a variable log2BlockSize that determines, for example, the size of the current block, - the array of reference samples of previous channels ref[ c ][ i ], for example, with
[0488] max( chldx - ( DepChMask & chldx ), 0 ) <= c < chldx and 0 <= i < blockPos + (1 « log2BlockSize).
[0489] - the array of reference samples of the current channel refCurr[ i ], for example, with 0 < = i < blockPos.
[0490] - the parameter log2TSize which determines, for example, the size of the adjacent left residual samples to be computed and which determines, for example, the size, e.g. tze size of the template used for parameter derivation.
[0491] Output of this process are, for example, the array of cross channel prediction sample values pred[ i ] with 0 <= i < (1 «log2BlockSize) and / or, for example, the array of adjacent left residual samples resiLeft [ j ] with 0 <= j < ( 1 « log2TSize ).
[0492] The variable maxPredVal may, for example be set to ( 1 « ( BitDepthMax - 1 ) ) - 1.
[0493] The variable minPredVal may, for example be set to - maxPredVal - 1.
[0494] The variable blockSize may, for example be set to 1 « log2BlockSize.
[0495] The variable firstPrevCh which indexes the first input channel may, for example, be defined as follows:
[0496] firstPrevCh = chldx - 1 - CrossChannelPredlnputChDistMinus1[ chldx ]
[0000] .
[0497] If cc_pred_mult_hyp_flag is not equal to zero, the variable secondPrevCh, which indexes, for example, the second input channel, may, for example, be defined as follows: secondPrevCh = chldx - 1- CrossChannelPredlnputChDistMinus1[ chldx ]
[0001] .
[0498] The variable tSize may, for example, be set to 1 « log2TSize.
[0499] The variable fPdL which specifies, for example, the length to the left for the prediction filters may, for example, be set to 3.
[0500] The variable log2FPdR which determines, for example, the length to the right for the prediction filters may, for example be set to 2.
[0501] The variable fPdR may, for example, be set to 1 « log2FPdR.
[0502] The variable fSz which specifies, for example the filter size for the filters may, for example, be set as fSz = fPdL + fPdR.
[0503] - If blockPos < tSize, the following may, for example, apply: - The intermediate cross channel prediction samples before filtering and extrapolation p[ i ] with 0 <= i < blockSize may, for example be defined as follows:
[0504] - If cc_pred_mult_hyp_flag is equal to zero, one may, for example put or set, or one pust p[ i ] = ref[ firstPrevCh ][ blockPos + i ].
[0505] - Otherwise ( cc_pred_mult_hyp_flag is not equal to zero), one may, for example, set
[0506] p[ i ] = ( ref[ firstPrevCh ][ blockPos + i ] + ref[ secondPrevCh ][ blockPos + i ] + 1 ) » 1.
[0507] - If cc_pred_filter_flag is equal to zero, the final cross channel prediction sample values pred[ i ] may, for example, be set to Clip3(minPredVal, maxPredVal, p[ i ]) for 0 <= i < blockSize.
[0508] - Otherwise ( cc_pred_filter_flag is not equal to zero ), the following may, for example, apply:
[0509] - If blockPos < fPdL, the extrapolation process, e.g. to the left, may, for example, be applied with the input starting position 0, the input array p, the input array size blockSize and / or the extension size fPdL for example, to obtain the sample values p[ -fPdL + i ] with 0 <= i < fPdL.
[0510] - Otherwise ( blockPos >= fPdL) the following may, for example, apply:
[0511] - If cc_pred_mult_hyp_flag is equal to zero, for 0 <= i < fPdL one may, for example set
[0512] p[ -fPdL + i ] = ref[ firstPrevCh ][ blockPos -fPdL + i ].
[0513] - Otherwise ( cc_pred_mult_hyp_flag is not equal to zero ), for 0 <= i < fPdL one may, for example, set p[ -fPdL + i ] = ( ref[ firstPrevCh ][ blockPos -fPdL + i ] +
[0514] ref[ secondPrevCh ][ blockPos -fPdL + i ]+ 1 ) »1.
[0515] - An extrapolation process, e.g., to the right may, for example, be applied with the input array p, the input array size blockSize and / or the extension size log2FPdR to obtain, for example, the sample values p[ blockSize +i ] with 0 <= i < fPdR.
[0516] - The final cross channel prediction sample values pred[ i ] with 0 <= i < blockSize are, for example, derived as
[0517] pred[ i ]
[0518] = Clip3( minPredVal, maxPredVal, (X^s=zop[-fPdL + i +
[0519] k] • CCFiltCoeffs[k] + 32) » 6)
[0520] - The extended residual samples resiLeft[ i ] may, for example, be set to 0 for 0 <=i < tSize. - Otherwise (blockPos >= tSize), the following may, for example, apply:
[0521] The array currChTplf ] of previous reconstructed sample values in the current channel on the left template may, for example, be defined as
[0522] currChTplf i ] = refCurrf blockPos - tSize + i ], with 0 <= i < tSize.
[0523] The array firstPrevChTplf ] of previous reconstructed sample values in the first input channel on the left template may, for example, be defined as
[0524] firstPrevChTpl [ i ] = ref[ firstPrevCh ][ blockPos - tSize + i ], with 0 <= i < tSize.
[0525] If cc_pred_mult_hyp_flag is not equal to zero, the array secondPrevChTplf ] of previous reconstructed sample values in the second input channel on the left template may, for example, be defined as
[0526] secondPrevChTpl [ i ] = ref[ secondPrevCh ][ blockPos - tSize + i ], with 0 <= i< tSize.
[0527] The intermediate cross channel prediction signal samples before filtering and extrapolation to the right p[ i ] with 0 <= i < blockSize + tSize +fPdL may, for example, be defined as follows:
[0528] - If cc_pred_offset_only_flag is equal to one, the following may, for example, apply:
[0529] - The variable sum Diff may, for example, be defined as follows:
[0530] - If cc_pred_mult_hyp_flag is equal to zero, one may, for example, set
[0531] sumDiff = X|=oze-1(currChTpl[i] - firstPrevChTpl [i]).
[0532] - Otherwise (cc_pred_mult_hyp flag is not equal to zero), one may, for example, set
[0533] sumDiff = Xi=oze-1(currChTpl[i] - ((firstPrevChTpl[i] + secondPrevChTpl [i] + 1) » 1))
[0534] - The variable offset may, for example, be defined as offset = (sumDiff + (1 « (log2TSize - 1 ) ) ) » log2TSize
[0535] - If cc_pred_mult_hyp_flag is equal to zero, the following may, for example, apply:
[0536] - If tSize + fPdL <= blockPos, for 0 <= i < blockSize + tSize +fPdL one sets:
[0537] p[ i ] = ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + offset.
[0538] - Otherwise ( tSize + fPdL > blockPos), the following may, for example, apply: - For fPdL <= i <blockSize + tSize +fPdL one sets p[ i ] = ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + offset.
[0539] - The extrapolation process, e.g. to the left, may, for example, be invoked with the input starting position fPdL, the input array size blockSize + tSize, the input array p and / or the extension size fPdL to obtain, for example, the values p[ i ] with 0 <= i < fPdL.
[0540] - Otherwise ( cc_pred_mult_hyp_flag is not equal to zero), the following may, for example, apply:
[0541] - If tSize + fPdL <= blockPos, for 0 <= i < blockSize + tSize +fPdL one may, for example, set:
[0542] p[ i ] = ( ( ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + ref[ chldxScnd ][ blockPos - tSize - fPdL + i ] +1 ) » 1 )+ offset.
[0543] - Otherwise ( tSize + fPdL > blockPos), the following may, for example, apply:
[0544] - For fPdL <= i <blockSize + tSize +fPdL one sets p[ i ] = ( ( ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + ref[ chldxScnd ][ blockPos - tSize - fPdL + i ] +1 ) » 1 )+ offset.
[0545] - The extrapolation process, e.g. to the left, may, for example, be invoked with the input starting position fPdL, the input array size blockSize + tSize, the input array p and / or the extension size fPdL to obtain, for example, the values p[ i ] with 0 <= i < fPdL.
[0546] - Otherwise ( cc_pred_offset_only flag is not equal to one ), if cc_pred_mult_hyp_flag is equal to zero, the following may, for example, apply:
[0547] 1. The symmetric 2x2 matrix A with the following entries A
[0000]
[0000] , A
[0000]
[0001] , A
[0001]
[0000] , A
[0001]
[0001] may, for example, be defined:
[0548] - A
[0000]
[0000] = ∑i=0tSize-1firstPrevChTpl[ i ] · firstPrevChTpl[ i ]
[0549] - A
[0000]
[0001] = ∑i=0tSizefirstPrevChTpl[ i ]
[0550] - A
[0001]
[0000] = A
[0000]
[0001]
[0551] - A
[0001]
[0001] = tSize
[0552] 2. The 2 dimensional vector b with the following entries b
[0000] ]and b
[0001] ]may, for example, be defined:
[0553] - b
[0000] = ∑i=0tSize-1currChTpl[ i ] · firstPrevChTpl[ i ]
[0554] - b
[0001] = ∑i=0tSize-1currChTpl[ i ]
[0555] 3. The cross component precision ccShift may, for example, be set to 16 4. A process for solving the equation in integer precision may, for example, be invoked to obtain, for example, the 2 dimensional vector v with entries v
[0000] and v
[0001] which may, for example, solve the equation Ax=b in precision ccShift, e.g. according to that section.
[0556] 5. The variable ccShiftOffst may, for example, be set to ccShift-1.
[0557] 6. The following may, for example, be applied:
[0558] - If tSize + fPdL <= blockPos, for 0 <= i < blockSize + tSize +fPdL one may, for example set:
[0559] p[ i ] = ( v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] + ccShiftOffst) ) » ccShift.
[0560] - Otherwise ( tSize + fPdL > blockPos), the following may, for example, apply:
[0561] - For fPdL <= i <blockSize + tSize +fPdL one sets p[ i ] = (v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] + ccShiftOffst) ) » ccShift.
[0562] - The extrapolation process, e.g. to the left, may, for example, be invoked with the input starting position fPdL, the input array size blockSize + tSize, the input array p and / or the extension size fPdL to obtain the values p[ i ] with 0 <= i < fPdL.
[0563] - Otherwise ( cc_pred_offset_only flag may, for example, not be equal to one and if_cc_pred_mult_hyp_flag is equal to one ), the following may, for example, apply:
[0564] The symmetric 3x3 matric A with the entries A[ k ][ I ] with 0 <= k < 3 and 0 <= I < 3 may, for example, be defined as follows:
[0565] - A
[0000]
[0000] = ∑i=0tSize-1firstPrevChTpl[ i ] · firstPrevChTpl[ i ]
[0566] - A
[0000]
[0001] = ∑i=0tSize-1firstPrevChTpl[ i ] · secondPrevChTpl[ i ] - A
[0000]
[0002] = ^bze“l firstPrevChTPl[i] •
[0567] - ]
[0568] - secondPrevChTpl[ i ] • secondPrevChTpl[ i ] -
[0569]
[0570] secondPrevChTpl[ i ] •
[0571] - A
[0002]
[0000] = A
[0000]
[0002]
[0572] - A
[0002]
[0001] =A
[0001]
[0002]
[0573] - A
[0002]
[0002] = tSize
[0574] - The 3 dimensional vector b with the following entries b
[0000] , b
[0001] and b
[0002] may, for example, be defined as follows:
[0575] - currChTpl[ i ] • firstPrevChTpl[ i ]
[0576] currChTpl[ i ] • secondPrevChTpl[ i ] -
[0577]
[0578] currChTpl[ i ] - The cross component precision ccShift may, for example, be set to 16. - A process which may, for example, solve the equation Ax=b in precision ccShift may, for example, be invoked to obtain, for example, the 3 dimensional vector v with entries v
[0000] , v
[0001] and v
[0002] .
[0579] - The following may, for example, be applied:
[0580] - If tSize + fPdL <= blockPos, for 0 <= i < blockSize + tSize +fPdL one may, for example, set
[0581] p[ i ] = (v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] * ref[ chldxSecond ][ blockPos - tSize - fPdL + i ] + v
[0002] +ccShiftOffst) » ccShift.
[0582] - Otherwise (tSize + fPdL > blockPos), the following may, for example, apply:
[0583] - For fPdL <= i < blockSize + tSize +fPdL, one may, for example, set
[0584] p[ i ] = (v
[0000] *ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v
[0001] * ref[ chldxSecond ][ blockPos - tSize - fPdL + i ] + v
[0002] +ccShiftOffst) » ccShift
[0585] - The extrapolation process, e.g. to the left, may, for example, be invoked with the input starting position fPdL, the input array size blockSize + tSize, the input array p and / or the extension size fPdL to obtain, for example, the values p[ i ] with 0 <= i < fPdL. - If cc_pred_filter_flag is equal to zero, the following may, for example, apply:
[0586] - For 0 <= i < blockSize one sets pred[ i ] = Clip3( minPredVal, maxPredVal, p[ tSize +fPdL + i ] ).
[0587] - For 0 <=i < tSize one sets
[0588] resiLeft[ i ] = currChTplf i ] - Clip3( minPredVal, maxPredVal, p[ fPdL +i ] ). - Otherwise (cc_pred_filter_flag is not equal to zero), the following may, for example, apply:
[0589] - The extrapolation process, e.g. to the right, may, for example, be invoked e.g.
[0590] with input array size fPdL + tSize +blockSize, input array p and / or extrapolation size log2FPdR to obtain, for example, the values p[ fPdL +tSize + blockSize + k ] with 0 <= k < fPdR.
[0591] - ForO <= i < blockSize one may, for example, set pred[ i ] = Clip3( minPredVal, maxPredVal, ((2kS=oP [tSize + i + k] • CCFiltCoeffs[k]) + 32) » 6).
[0592] - ForO <=j < tSize one may, for example, set resiLeft[ i ] = currChTplf i ]- Clip3( minPredVal, maxPredVal, ((2k=oP[i +kl ’ CCFiltCoeffs[k]) + 32) » 6). The above description is extended in the following by the presentation of further embodiments. Before this, however, the description proceeds with a presentation of a possible framework or codec into which the embodiments described above as well as the embodiments described further below may be built into. Many details described in this framework are, however, optional when being combined with any of the above or subsequently described embodiments. To be more precise, the framework is described with respect to Fig. 4 which shows an encoder for encoding a multi-channel digital signal 14 into a datastream 16 as well as decoder 12 for decoding the multi-channel digital signal 14 from datastream 16. This description of Fig. 4 shall be seen as a presentation of new embodiments of the present application which result when combining any of the embodiments described above or any of the embodiments described subsequently is combined with the decoder 12 or encoder 10 of Fig. 4 either by adopting all details / functionalities described with respect to Fig. 4 or with leaving-out some of the details / functionalities described with respect to Fig. 4. Sometimes such “optional” features of Fig. 4 are explicitly identified as being optional with respect to the combination of the previously and subsequently described embodiments, but the just-mentioned possible combinations of the previously / subsequently explained embodiments with the description of Fig. 4 shall not be restricted to the these explicitly identified variations of Fig. 4 in terms of leaving-out certain features.
[0593] In Fig. 4, the multi-channel digital signal 14 is illustrated by way of an array of samples with the samples being illustrated as small squares 18. Each line / row corresponds to a certain channel of the multi-channel digital signal 14. Each channel of signal 14 may have associated therewith a respective channel ID and Fig. 4 shows these channels as being ordered according to their channel ID along vertical axis 20 which, thus, corresponds to a “source” channel axis 20. The horizontal axis 22 corresponds to time so that samples 18 forming one column, or being horizontally aligned, are samples belonging to one common time instant. Such set / column of temporally co-located samples 18 is illustrated in Fig. 4 at 24.
[0594] Each channel, thus, forms a digital time-varying signal ortime / amplitude or time-to-amplitude signal. The multi-channel digital signal m might have been obtained by at least one of Electrocardiography, Electroencephalography, Electromyography or seismic measurement. Differently speaking, the multi-channel digital signal might be a bio-physiological waveform data such as an electroencephalography (EEG) signal, an electrocardiogram (ECG), or an electromyography (EMG) signal, or seismic waveform data. However, each channel / signal might alternatively be another sort of waveform signal data such as scalar media data such as an audio signal and the signal 14 might be a multi-channel audio signal. Fig. 4 illustrates the option according to which signal 14 is not coded directly, i.e., in the original domain 26, but in a so-called “coded domain” 28 which might differ from the original domain 26 by one or more of 1) channel transformation, 2) channel permutation and 3) temporal mutual channel alignment. The channel transformation, if applied, transforms, per sample time instant, a set or column 24 of samples from domain 26 to domain 28. Thus, in domain 28, the sample pitch and the time axis is the same as in domain 26, but the meaning of the channels is different, i.e., the “source” channels of domain 26 become transformed channels in domain 28. Accordingly, the vertical axis in Fig. 4 for domain 28 is denoted as 32. Note that the channel transformation might leave the number of channels unchanged so that there is the same number of channels in domain 26 as well as domain 28, but different approaches are also possible. Generally, the channel transformation would aim at reducing redundancy and trying to condense the channels’ energy onto a fewer number of channels in domain 28. As said, the channel transformation is optional. Accordingly, in general terms, the channels in domain 28 are called “coded channels” in order to distinguish them from the “original” or “source” channels of digital signal 14 in domain 26. The permutation is also optional and may be used in combination with, or without, the channel transformation. If used in combination with the channel transformation, the permutation may be performed prior to and / or or subsequent to the channel transformation in order to permute / sort the source channels prior to transformation and the coded channels subsequent to the channel transformation. The channel transformation might be a DCT, DST, FFT or any other transformation. The temporal mutual alignment is also optional and might be seen as a constant temporal alignment between the source channels or the coded channels.
[0595] The module in encoder 10 performing the one or more of channel transformation, channel permutation and temporal mutual alignment is indicated in Fig. 4 as block 34. Side information 36 might be used in order to signal information on one or more of the following: 1) The channel transformation used, 2) information on the permutation(s) among the source channels and / or coded channels and 3) information on the mutual temporal alignment / delays between the source channels or coded channels wherein the temporal mutual alignment might be restricted to full sample precision. A corresponding block 38 in decoder 12 performs the reverse step, i.e., performs one or more of: 1) a channel retransformation, 2) a re-permutation of the source channels and / or coded channels and 3) a temporal re-alignment of the source channels or coded channels. Note, that if no channel transformation takes place, the coded channels are, in fact, equal to the source channels except for being temporally mutually aligned or being differently sorted due to permutation. Block 38 might be controlled by the before-mentioned side information 36. Thus, the “actual coding” relates to the coded channels in domain 28. In the coded domain 28, the coded channels are depicted in Fig. 4 as lines or rows of samples 40, each extending along time axis 22, the coded channels being depicted one on top of the other along coded channel axis 32 - potentially ordered according to a coded channel ID they have associated therewith - so as to result into an array of samples 40. Again, although Fig. 4 depicts the case that the number of source channels equals the number of coded channels, the number might be different. Further, if channel transformation is used, while there is no longer a clear association between source channels on the one hand and coded channels on the other hand, the temporal association remains: For each temporally co-located samples 24, there is a corresponding temporally co-located set 42 of samples 40 of the coded channels, wherein the set 42 in domain 28 is a column and might be a set of horizontally mutually offset samples in case of, and according to, the mutual temporal alignment, if applied. In case of Fig. 4, it has been assumed that no such temporal alignment took place so that both sets 42 and 24 are pure columns in the time / channel representation.
[0596] The actual coding is done in units of so-called temporal blocks 30. The term “block” or “temporal block” 30 is used so as to denote both a temporal portion of the multi-channel signal in domain 28, i.e., the set of coded channels, as well as a temporal portion of a certain coded channel. That is, for each temporal block 30, each coded channel has a temporal block such as block 140 depicted for some temporal block 30c and same are mutually co-located. The coding is done sequentially along these blocks 140, by following a coding / decoding order, which traverses the blocks 140 temporal block 30 by temporal block 30 with traversing temporally co-located blocks of the coded channels along a channel order corresponding to the order of the coded channels along axis 32. This coding / decoding order is illustrated in Fig.
[0597] 4 at 60. That is, in case of temporal block 140 being the block currently to be coded / decoded, the previously decoded / encoded temporal blocks include all preceding temporal blocks of all coded channels as well as the temporally co-located temporal blocks of coded channels preceding the coded channel 92 of temporal block 140 in channel order. These previously coded / decoded temporal blocks and their samples are illustrated in Fig. 4 by way of shading. In this regard, note that in Fig. 4, merely one temporal block 140 has been illustrated explicitly in order to reduce the complexity of Fig. 4. Thus, in the specification herein, reference sign 140 is sometimes used to indicate the currently encoded / decoded temporal block or to stand representatively for all temporal blocks. Further, as depicted in Fig. 4, the partitioning of signal 14 into temporal blocks 30 and 140, respectively, might be done in a manner so that these blocks 30 and 140, respectively, are non-overlapping. The actual coding in units of the temporal blocks 140 is performed predictively. That is, the encoder 10 comprises a block predictor 62 which predicts the samples of the currently coded temporal block 140, thereby yielding a prediction signal 64, and the prediction residual 66 formed by a subtraction between the actual sample values of temporal block 140 and the predicted samples of prediction signal 64 formed at a subtractor 68 is coded into the datastream 16 by residual coder 70. The residual coding in residual coder 70 may, or may not, involve a coding error by means of quantization. In any case, block predictor 62 uses the reconstructable version as being available by previously coded temporal blocks in order to obtain the prediction signal 64. This reconstructable version 72 might be derived at encoder 10 by means of a residual decoder 74 which reverses, potentially under coding loss, such as quantization, e.g. by means of dequantization, the residual signal 76 as coded into datastream 16, and an adder 78 which sums-up prediction signal 64 and the reconstructable residual signal 80 as obtained by residual decoder 74. To be more precise, let’s call the channel-individual temporal blocks 140 subblocks with temporally collocated subblocks of all channels forming a temporal block 30. Then, the prediction in module 62 or, to be more precise, the prediction at encoder and decoder, is performed in units of the subblocks 140, i.e. subblock wise. The encoder is free to choose different prediction modes for the subblocks within one block 30. As explained in more detail herein, within one block 30, one subblock 140 may be predicted based on one or more subblocks previously - according to the decoding order 60 - en / decoded within this block 30, while another subblock 140 within that block 30 might be coded / decoded based on the previously en / decoded subblock 140 of the same channel (but within the previous block 30). The transform residual en / decoding is then performed subblock wise by use of a onedimensional transform signaled in the data stream as described hereinbelow.
[0598] The decoder 12 decodes the coded channels from data stream 16 in a corresponding manner, i.e., in units of the temporal blocks 30 or in temporal blocks 140, respectively, and using predictive decoding. To this end, the decoder 12 comprises a residual decoder 82, an adder 84 and a block predictor 86 which correspond to, and are mutually connected in the same manner as, elements 74, 78 and 62 of encoder 10. That is, the residual decoder 82 derives from the residual signal 76 in data stream 16 the reconstructable residual signal 80 for a currently decoded temporal block 140 which is then subject to addition with prediction signal 64 derived by block predictor 86 for temporal block 140 on the basis of the reconstructed version 72 of previously decoded temporal blocks at adder 84. The output of adder 84, thus, yields the reconstructed version 72 of the currently decoded temporal block 140 and becomes part of the pool of already decoded samples of previously decoded temporal blocks when the temporal blocks of the coded channels are, in this manner, traversed along coding / decoding order 60 so as to reconstruct the coded channels in the coded domain 28. Note that the above description concentrated on the so-called sample prediction where samples of a current block 140 are predicted based on reconstructed samples of one or more previously decoded blocks, but coding inter dependencies, namely intra-channel and interchannel coding dependencies may be exploited not only in terms of sample prediction, but also in terms of other coding tools involving, for instance, parameter prediction and / or context derivation.
[0599] In order to enable a high degree of random access capability, some of the temporal blocks 30 may be coded in a random access manner meaning that the coded channels therein are coded independent from previous temporal blocks 30. Imagine, for instance, that temporal blocks 30b and 30e are random access temporal blocks. Then, none of the temporal channel blocks 140 in temporal block 30b as well as 30e would depend on any preceding temporal block 140 and no coding dependency would cross these temporal blocks 30b and 30e, that is no temporal block 140 within any of temporal block 30b-30d would be coded depending on any block 140 temporally preceding temporal block 30b, and no temporal block 140 within any of temporal block 30e and following would be coded depending on any block 140 temporally preceding temporal block 30e.
[0600] Thus, in other words, coding dependencies are restricted so as to not reach-out beyond the border of a random access temporal block 30b and 30e towards any preceding temporal block 30. Such restriction might also hold for intermediate temporal blocks 30c to 30d between random access temporal blocks 30b and 30e in that same may not depend on any temporal block preceding the leading one among the random access temporal blocks 30b and 30e, here block 30b. Accordingly, leading temporal borders of the random access temporal blocks 30b and 30e are indicated by bold lines in Fig. 4. In a variant, the restriction is not valid for all en / decoding stages. For instance, while the grouping might hold true for prediction, but the residual en / decoding dependencies might cross borders between channel groups. It might be the case, for instance, that for the entropy coding and decoding, all channels are coded jointly, i.e. using a single arithmetic coding engine, but that for the sake of prediction and reconstruction, the channels are grouped as described into independent groups such that, after entropy decoding, each such group can be reconstructed completely independently from each other group. This means that no prediction of sample values or any other information is supported between different channel groups.
[0601] Further, it might be that the coding of the coded channels also interrupts or restricts interchannel dependencies. For example, one or more of the coded channels might be coded as random access coded channels so that same do not use inter-channel dependencies, but merely intra-channel dependencies. The restriction of inter-channel coding dependencies might follow the channel order 32: that is, coding of these random access coded channels and the intermediate coded channels therebetween would be restricted so as to not reach-out beyond such a random access coded channel toward any coded channel preceding that random access coded channel in channel order along axis 32. Two such random access coded channels 88a and 88b and the resulting inter-channel dependency borders are illustrated in Fig. 4. Note that the restriction of inter-channel dependencies might be differently and is illustrated here merely as an example where the definition of, along channel order 32, interspersed random access channels 88a and 88b defines channel groups covering contiguous channels along the channel order 32. Other groups of channels might be defined, which do not necessarily follow the channel order 32, and inter-channel dependencies might be restricted not to render any channel of one group dependent on a channel of any other group, and within each group the inter-channel dependencies may also by restricted or each channel might by coded inter-channel dependent on any previously coded channel within its channel group.
[0602] The block predictor 62 and 86 of encoder 10 and decoder 12, respectively, operate synchronously, i.e., they generate the same prediction signal 64 based on the previously encoded / decoded samples of previously encoded / decoded temporal blocks 140. On encoder side 10, the prediction fora certain temporal block 140 may be accompanied or determined by one or more prediction parameters. Same might be determined on encoder side based on a rate / distortion optimization. These prediction parameters 90 are coded into data stream 16 and they are decoded from data stream 16 and used by block predictor 86 so as to perform the same prediction.
[0603] It might be that encoder 10 and decoder 12 support more than one prediction mode. For instance, encoder 10 and decoder 12 may support an intra prediction mode (which mode may also be called block-copy mode) according to which the currently encoded / decoded temporal block 140 is predicted based on the reconstructable sample values of previously encoded / decoded temporal blocks of the same coded channel to which the currently encoded / decoded temporal block 140 belongs, which is coded channel 92 in the example of Fig. 4. Additionally or alternatively, encoder 10 and decoder 12 may support an inter-prediction mode (which mode may also be called cross-channel prediction mode) according to which the currently encoded / decoded temporal block 140 is predicted based on the reconstructable sample values of previously encoded / decoded temporal blocks of one or more coded channels preceding - in coding order 32 - the coded channel 92 to which the currently encoded / decoded temporal block 140 belongs. Additionally or alternatively, there may be a mixed prediction mode according to which the prediction signal 64 is obtained by both, reconstructed / reconstructable sample values of previously encoded / decoded temporal blocks of coded channel 92 itself as well as reconstructed / reconstructable sample values of one or more coded channels preceding coded channel 92 in channel order along axis 32. Beyond this, there may be temporal blocks 140 which are coded without any prediction at encoder 10 and decoded without any prediction at decoder 12 such as the first temporal blocks 140 in the tiles 94 resulting from mutually separating the temporal blocks by means of the random access borders 96 on the one hand and the random access channel borders 98 on the other hand. This corresponds to the prediction signal 64 being set to zero and this may form an additional mode which could be called bypass mode. Additionally, or alternatively, there may be other modes such as ones deriving a DC predictor or linear function predictor for block 64 based on immediately preceding samples which immediately precede block 140. The prediction parameters 90 may, thus, contain for a currently encoded / decoded temporal block 140 a prediction mode flag or prediction mode indicator indicating the prediction mode to be used for this currently encoded / decoded temporal block 140 and, optionally, one or more parameters parameterizing the prediction mode to be used for this currently encoded / decoded temporal block 140. It might also be that the prediction parameters are themselves coded predictively from already reconstructed blocks 140. In this prediction process, the laid out random -access capabilities in channel- and temporal-direction are, as an example, always maintained, i.e. the mentioned prediction of prediction parameters may never be supported across such a random access segment.
[0604] As mentioned, the aforementioned coding dependencies ought not to cross any of the borders 96 and 98 not only result from the just-described sample prediction capabilities of block predictor 62 and 86, respectively, but may optionally also result from other mechanisms such as parameter prediction according to which parameters such as the aforementioned prediction parameters 90 for a certain temporal block 140 are predicted based on coding parameters conveyed in the data stream 16 for any previous temporal block, or context derivation for context-adaptive entropy coding / decoding any coding parameter such as the prediction parameters 90 or any other side information such as side information 76 and 36 for temporal block 140 based on any coding parameter conveyed in the data stream 16 for any preceding temporal block.
[0605] That is, summarizing, the encoder 10 encodes the multi-channel signal 14 by transferring it into the coded domain 28 and then coding the coded channels into data stream 16 in the just-described block-wise and predictive manner, wherein decoder 12 decodes the coded channels of coded domain 28 from data stream 16 and the corresponding block-wise and predictive manner with then gaining the multi-channel signal 14 in its original form 26 based on the coded channels in coded domain 28 by means of segment 38. As said, the channel transformation is optional and if not used, each sample 40 in the coded domain 28 really corresponds to one sample 18 in the original domain 26. If, further, the temporal mutual alignment is not used, each sample 40 exactly corresponds to a sample 18 in the original domain 26 at exactly the same time instant or, differently speaking, all temporally co-located samples 40 in coded domain 28 remain mutually temporally co-located in the original domain 26.
[0606] It should be noted that the temporal blocks 30 might, other than illustrated in Fig.5, vary in block length rather than being of a constant length as depicted in Fig. 4. For instance, encoder 10 may decide on the length of blocks 30 and signal the block length of blocks 30 (and the corresponding temporal blocks 140 of the coded channels) within data stream 16. Such signaling might be done on block level, such as for each temporal block 30 or, differently speaking for each temporally aligned bundle of blocks 140, so that the encoder may decide on the block size on the fly, or the block length might be signaled in the stream 16 on a larger scope such as for a sequence of blocks or even the whole stream 16.
[0607] As to the residual coder and residual decoder 70 and 82, they may use transform coding / decoding in order to convey the residual signal 76 in data stream 16. That is, the residual signal 80 may be conveyed in data stream 16 in transform or spectral domain by way of transform coefficients in residual signal 76. The transform domain might be a DCT, DST or an FFT. The transform may be non-overlapping, i.e. it may only transform residual signal 80 and its re-transform may only cover residual signal 76 within block 140, and / or may be nonwindowed, i.e. the residual signal might be transformed without any transform window used to temporally shape the residual signal 80 before the transform. The transform domain, i.e. the transformation leading from time domain to transform domain which is used by the encoder to transform the prediction residual signal 80 to be coded und the corresponding retransformation leading from transform domain to time domain which is used by the decoder to derive the prediction residual signal 80, or the transformation, might be selected from a set of available transforms including, for instance, one or more of 1) one or more DCTs, 2) one or more DSTs and 3) an identity transform according to which the prediction residual signal 80 is coded into the data stream 14 in time domain directly. The transform may be critically sampled in that the number of transform coefficients resulting from the samples of one block 140 may equal the number of samples of block 140. Again, the samples might be the residual samples or may be, in case of the bypass mode, the channel samples directly. The transform coefficients might be encoded by quantization, i.e. they may be quantized with the quantized coefficients then being coded in the datastream 16. Dequantization may occur at decoding. For quantization, either a scalar uniform reconstruction quantizer or a low complexity vector quantizer might be used. In order to determine the quantization indices, the encoder may perform some optimization algorithm such as a rate-distortion optimized scalar quantization, or a trellis quantization with the goal to approximately minimize an approximated Lagrangian rate-distortion cost. At the decoder, the reconstruction process that yiels (e.g. yields) the transform coefficients may be conducted by multiplying the coded quantization indices with a certain step-size and, in case of the use of a low-complexity vector quantizer, by additionally invoking a state-machine based on the parity of previously decoded quantization indices in order to reconstruct the current quantization index.
[0608] In order to control the quantization noise, the transform coefficients might be subject to noise shaping. Spectral noise shaping may be used to shape the quantization noise spectrally. This may be done by signaling in the data stream spectral-band scale factors, i.e. a scale factor per spectral band, which represent a transfer function of a spectral filter which approximates the spectral envelope of the signal within the current block 140 (or its prediction residual, respectively), or signaling filter coefficients defining a temporal filter having a filter transfer function which approximates the spectral envelope of the signal within the current block 140 (or its prediction residual, respectively). On encoder side, spectral noise shaping may be applied in spectral domain by multiplying an inverse of scale factors, either directly signaled in the data stream or derivable from the filter coefficients by filter-to-factor conversion, with the transform coefficients before quantization. That is, at encoder, the coefficients are shaped by the inverse of the spectral envelope. At decoder side, spectral shaping may be applied in spectral domain by multiplying scale factors, either directly signaled in the data stream or derived from the filter coefficients by filter-to-factor conversion, with the transform coefficients, with then (e.g. with then performing the retransformation based on the spectrally shaped transform coefficients). That is, at decoder, the coefficients are shaped by the spectral envelope before applying retransformation. Additionally or alternatively, temporal noise shaping might be applied. To this end, TNS filter coefficients might be determined and signaled by the encoder. The TNS filter coefficients may represent a transfer function which approximates the temporal envelope of the current block 140 (or its residual signal). The encoder may apply TNS filtering using the filter coefficients by spectrally filtering the possibly spectrally shaped transform coefficients so as to filter them with a transfer function corresponding to an inverse of the temporal envelope. The TNS filter coefficients might be derived by linear prediction analysis of the possibly spectrally shaped transform coefficients so as to derive a linear prediction filter, then used as TNS filter, which minimizes a prediction residual when spectrally applied on the possibly spectrally shaped transform coefficients. At the encoder, the TNS filtered coefficients are then quantized and entropy coded. At decoder side, the inverse takes place: the possibly spectrally shaped transform coefficients are inversely TNS filtered before applying retransformation. Additionally or alternatively, noise filling might be used. The filling may be applied to zero-quantized portions of the spectrum and controlled by the encoder via corresponding noise filling parameters.
[0609] As to the encoding / decoding the block or sequence of quantized transform coefficients of a current block into / from the data stream 16, arithmetic coding, such as context-adaptive binary arithmetic coding, CABAC, may be used. The CABAC encoding / decoding may by performed frame wise. That is, in each channel, the sequence of blocks 140 may be partitioned into immediately consecutive blocks 140, which form frames. This partitioning may be equal among the channels so that, again, a frame denotes both a temporal portion within each channel individually, as well as a temporal portion of the multi-channel signal, i.e. a collection of temporally aligned frames. Within each frame, the sequence of blocks 140 are CABAC en / decoded with once initializing the contexts and resetting the internal CABAC state at the beginning and then updating the contexts’ probabilities during en / decoding the respective frame. That is, blocks 140 are CABAC decodable merely in units of frames. The context initialization might be done independent from previous frames, or depending on the contexts as manifesting itself at the end of, of during, the en / decoding a previous frame.
[0610] Some deblocking processing might be used to avoid blocking artifacts. If, alternatively, an overlapped transform is used, an overlap-add processing with re-transforms of immediately preceding / succeeding temporal blocks of the same coded channel might be used in order to completely reconstruct the current temporal block’s 140 residual signal 76.
[0611] Besides such transform-(residual)-coded blocks there might be temporal blocks 140 which, additionally or alternatively, are coded using, besides the block prediction by block predictor 62 / 86 - which could be called a primary prediction - a secondary sample-wise prediction of the residual samples in residual block 66 such as by predicting a current sample’s residual sample by means of already decoded values of preceding - in sample coding order - residual samples in block 66 or 80, with then correcting same by means of a secondary-prediction-residual sample decoded from the data stream 16. The secondary-prediction-residual samples for such a block may coded into the data stream en block in a transform domain or samplewise in time domain. Note that the afore-mentioned spectral shaping of the residual signal of a block 140 might be seen as a sample wise residual prediction, i.e. the case where filter coefficients are signaled for a block which define a temporal filter having a filter transfer function which approximates the spectral envelope of the residual signal within a current block 140. In sample wise residual prediction, the residual predictor on a current block 140 might either be chosen out of a fixed set of prediction modes, where an index to such a residual prediction mode is signaled in the bit-stream, or the residual prediction mode might be ‘signal adaptive’. In the latter case, prediction filter coefficients for the residual predictor are determined at the encoder by solving for example a linear equation, and are then quantized and transmitted to the decoder. At the decoder, the coefficients are inverse quantized and then the sample-wise prediction is conducted with these coefficients. The number of used coefficients may vary per block and might also be signaled in the bit-stream. Additionally, it might optionally (i.e. indicated by some information in the bit-stream) be supported to invoke collocated samples from a previous block for the sample wise residual prediction. Finally, the coefficients of the sample wise residual prediction might be coded predictively, i.e. be predicted from used coefficients of a previous block, where only the differences to the current coefficients are transmitted.
[0612] A final note shall be made with respect to the juxtaposition of frames, blocks 140, channels and channel groups and regarding decoding order. The description above already described the fact that the channels might be grouped into channel group with each channel group being coded independently from each other, meaning that the blocks 140 in a certain channel group are coded without dependencies from channels outside their channel group. The decoding order 60, thus, would traverse the channels channel-group individually, channel group by channel group. Within each channel group, the blocks 140 are traversed as described: all temporally aligned blocks 140 of all channels fist, then proceeding with the next blocks 140 and so forth. A frame may have a sequence of blocks of a channel group encoded thereinto along the mentioned decoding order order, such as n temporally consecutive blocks 140 for all channels of a channel group. IF the channel group had m channels, m*n block 104 would, thus, be coded into the frame. As mentioned, there might be dependent frames, for which the CABAC contexts are adopted from the preceding frame of the same channel group, i.e. the one having encoded the immediately preceding block 140. For such dependent frames, not only CABAC contexts may be adopted from the preceding frame, but it may also be allowed to allow for prediction from the preceding frame to the dependent frame. Prediction, and possibly also any coding dependencies, towards channels outside the channel group and, within the channel group, towards frames temporally preceding the mostly recently previously en / decoded independent frame would be disallowed. Thus, each tile shown in Fig. 4 by bold lines may represent a sequence of an independent frame flowed by zero, one or more dependent frames.
[0613] As mentioned before, Fig. 4 only represents a possible “framework” into which the previously described embodiments and the embodiments described subsequently may be built into. Many modifications may be performed with respect to Fig. 4, and some of these modifications might be mentioned in the subsequent description with respect to certain ones of the subsequently described embodiments, but these modifications shall then be treated as being also applicable with respect to other ones of the subsequently described embodiments.
[0614] The description is now resumed with respect to the announced subsequently described embodiments.
[0615] In this regard, it is to be noted that embodiments comprise encoders and respectively decoders according to the framework of Fig. 4, having any or all of the features, functionalities and details, individually or taken in combination, as discussed before and in particular as shown and discussed in the context of Fig. 1, 2 and 3.
[0616] Hence, optionally, decoder 12 of Fig. 4 may correspond to the decoder shown in Fig. 1. That is decoder 12 may, for example, comprise the respective features, functionalities and details of decoder 100 both individually or taken in combination. In particular, decoder 100 implemented in the framework shown in Fig. 4 may comprise, e.g. additionally, or in an according manner, some or all of the above discussed functionalities of decoder 12. The same applies accordingly to encoder 10 with respect to the encoder 300 of Fig. 3.
[0617] Accordingly, the grid of sample values 201 shown in Fig. 2 may correspond to the grid of sample values 18 shown in Fig. 4 (or respectively in a transform domain). Hence, the processings as discussed in the context of Fig. 2 may be performed using the framework of Fig. 4.
[0618] As an example, the encoded representations 101, 302 may comprise the residual information 76 (and / or side information 36 and / or prediction parameters), which may be decoded and respectively encoded as discussed in the context of Fig. 1 to 3. For example, encoding / decoding units 110, 310 may, for example, comprise the predictive coding functionalities as discussed in the context of Fig. 4. For example, signal 14 may comprise, or may correspond to, the signal to be encoded 301, with encoder 300 and respectively decoder 100 optionally comprising the above-discussed channel transformation / permutation / temporal alignment functionalities.
[0619] Implementation alternatives:
[0620] Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most important method steps may be executed by such an apparatus.
[0621] Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
[0622] Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
[0623] Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine-readable carrier.
[0624] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine-readable carrier. In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
[0625] A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and / or non-transitionary.
[0626] A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
[0627] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
[0628] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0629] A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
[0630] In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware apparatus.
[0631] The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer. The apparatus described herein, or any components of the apparatus described herein, may be implemented at least partially in hardware and / or in software.
[0632] The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0633] The methods described herein, or any components of the apparatus described herein, may be performed at least partially by hardware and / or by software.
[0634] The above-described embodiments are merely illustrative for the principles of the present invention. It is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending patent claims and not by the specific details presented by way of description and explanation of the embodiments herein.
Claims
1. Claims1. An apparatus (100) for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),3.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values (207, 214) of a first other channel and in dependence on a plurality of previously decoded values of a second other channel (208, 213).
2. The apparatus (100) according to claim 1,5.wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using a weighted combination of a plurality of previously decoded values of the first other channel and of a plurality of previously decoded values of the second other channel.
3. The apparatus (100) according to any of claims 1 to 2,7.wherein the apparatus is configured to determine a first temporal offset value (209), defining which previously decoded values of the first other channel are used for obtaining the prediction values for a given temporal portion of the current signal, using a first temporal offset value information included in the encoded representation (101, 302), and8.wherein the apparatus is configured to determine a second temporal offset value (210), defining which previously decoded values of the second other channel are used for determining the prediction values for the given temporal portion of the current signal, using a second temporal offset value information included in the encoded representation.
4. The apparatus (100) according to any of claims 1 to 3,10.wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using an additive offset value.
5. The apparatus (100) according to any of claims 1 to 4,wherein the apparatus is configured to determine the additive offset value in dependence on a previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel.
6. The apparatus (100) according to any of claims 1 to 5,13.wherein the apparatus is configured to determine a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination, in dependence on a previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel, and14.wherein the apparatus is configured to determine a second weighting value, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination, in dependence on the previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel.
7. The apparatus (100) according to any of claims 1 to 6,16.wherein the apparatus is configured to determine the additive offset value using a minimization of a prediction error (215) between a previously determined template portion (211) of the current channel signal and predicted values for the template portion.
8. The apparatus (100) according to any of claims 1 to 7,18.wherein the apparatus is configured to determine the additive offset value using a computation of a mean difference value between a previously determined template portion of the current channel signal and predicted values for the template portion.
9. The apparatus (100) according to any of claims 1 to 8,20.wherein the apparatus is configured to determine a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination, and21.a second weighting value, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination,22.using a minimization of a prediction error (215) between a previously determined template portion (211) of the current channel signal and predicted values for the template portion.
10. The apparatus (100) according to any of claims 1 to 9,24.wherein the apparatus is configured to determine25.a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination, and26.a second weighting value, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination, and27.an additive offset value,28.using a solution of a linear equation system.
11. The apparatus (100) according to any of claims 1 to 10,30.wherein the apparatus is configured to determine31.a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination, and32.a second weighting value, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination, and33.an additive offset value34.using a solution of a linear equation system defined as37. 39.where C is a symmetric 3x3 matrix and v is a column vector of size 3 with the following elements:
43. 45.wherein templateSize describes an extension of the template; wherein Y[c][i] describes an array or vector of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index;46.wherein cprevO is a channel index of the first other channel;47.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained;48.wherein offsetValFirst describes a temporal offset of previously decoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;49.wherein offsetValSecond describes a temporal offset of previously decoded values of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; wherein cprevl is a channel index of the second other channel;50.wherein b is the additive offset value.
12. The apparatus (100) according to any of claims 1 to 11,52.wherein the apparatus is configured to set a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination to a first default value, and53.wherein the apparatus is configured to set a second weighting value, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination to a second default value.
13. The apparatus (100) according to any of claims 1 to 12,55.wherein the apparatus is configured to switch between56.a first mode,57.in which the apparatus determines a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination, in dependence on a previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel, and58.in which the apparatus determines a second weighting value, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination, in dependence on the previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel, and59.a second mode,60.in which the apparatus uses predetermined default values for the first weighting value and the second weighting value61.in dependence on a signaling information included in the encoded representation (101, 302).
14. The apparatus (100) according to any of claims 1 to 13,wherein the apparatus is configured to switch between a63.single hypothesis mode in which the apparatus is configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously decoded values of a single other channel, and64.a multi hypothesis mode, in which the apparatus is configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously decoded values of the first other channel and in dependence on a plurality of previously decoded values of the second other channel65.in dependence on a signaling information included in the encoded representation (101, 302).
15. The apparatus (100) according to any of claims 1 to 14,67.wherein the apparatus is configured to obtain a channel index determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a first channel used to obtain a plurality of prediction values for a previous portion of the current signal, and68.wherein the apparatus is configured to obtain a channel index determining the second other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a second channel used to obtain the plurality of prediction values for the previous portion of the current signal.
16. An apparatus (100) for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),69.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values of a first other channel (207, 214);70.wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using a weighting of a plurality of previously decoded values of the first other channel, and71.wherein the apparatus is configured to set a first weighting value, defining a weighting of a plurality of previously decoded values of the first other channel to a first default value.
17. The apparatus (100) according to claim 16,73.wherein the apparatus is configured to switch between74.a first mode,75.in which the apparatus determines the first weighting value, defining the weighting of a plurality of previously decoded values of the first other channel, in dependence on a previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel, and76.a second mode,77.in which the apparatus uses the predetermined default values for the first weighting value78.in dependence on a signaling information included in the encoded representation (101, 302).
18. The apparatus (100) according to any of claims 16 to 17,80.wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using an additive offset value, and wherein the apparatus is configured to determine the additive offset value in dependence on a previously decoded portion of the current channel signal and in dependence on a corresponding previously decoded portion of the first other channel both in the first mode and in the second mode.
19. The apparatus (100) according to any of claims 16 to 18,82.wherein the apparatus is configured to determine the additive offset value using a computation of a mean difference value between a previously determined template portion of the current channel signal and predicted values for the template portion.
20. The apparatus (100) according to any of claims 16 to 19,84.wherein the apparatus is configured to obtain the additive offset value b according to86. 88.0 < j < templateSize.89.wherein templateSize describes an extension of the template;90.wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index;91.wherein cprev is a channel index of the first other channel;92.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained;93.wherein offsetValFirst describes a temporal offset of previously decoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices, or94.wherein the apparatus is configured to obtain the additive offset value b according to96.
97. wherein templateSize describes an extension of the template;98.wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index;99.wherein cprevO is a channel index of the first other channel;100.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained;101.wherein offsetValFirst describes a temporal offset of previously decoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;102.wherein offsetValSecond describes a temporal offset of previously decoded values of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;103.wherein cprevl is a channel index of the second other channel;104.wherein b is the additive offset value.
21. An apparatus (100) for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),105.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values of a first other channel (207, 214);106.wherein the apparatus is configured to obtain a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
22. The apparatus (100) according to claim 21,108.wherein the apparatus is configured to obtain the channel index determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a predictive decoding.
23. The apparatus (100) according to any of claims 21 to 22,110.wherein the apparatus is configured to obtain the channel index determining the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal, in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a difference information describing a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and a channel index of the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal.
24. The apparatus (100) according to any of claims 21 to 23,112.wherein the apparatus is configured to decode a channel difference information, which is included in the encoded representation (101, 302), and which describes a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and a channel index of the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal, and113.wherein the apparatus is configured to determine the channel index of the first other channel in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and in dependence on the channel difference information.
25. The apparatus (100) according to any of claims 21 to 24,115.wherein the apparatus is configured to decode a channel difference information, which is included in the encoded representation (101, 302), and which describes a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and a channel index of the second other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal, and116.wherein the apparatus is configured to determine the channel index of the second other channel in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and in dependence on the channel difference information.
26. The apparatus (100) according to any of claims 21 to 25,118.wherein the apparatus is configured to evaluate a first signaling information, indicating whether a difference between a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal, is different from 0, and119.wherein the apparatus is configured to selectively evaluate, if the first signaling information indicates that the difference is different from 0,120.- a second signaling information describing a magnitude of the difference between a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal, and - a third signaling information describing a sign of the difference between a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal121.and wherein the apparatus is configured to determine the channel index defining the first other channel in dependence on the first signaling information, and also in dependence on the second signaling information and the third signaling information if the first signaling information indicates a non-zero difference.
27. The apparatus (100) according to claim 26,123.wherein the apparatus is configured to add 1 to the value represented by the second signaling information, in order to derive an actual magnitude of the difference between a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, and a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
28. An apparatus (100) for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),124.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values of a first other channel (207, 214);125.wherein the apparatus is configured to apply a filtering to the plurality of prediction values, and / or126.wherein the apparatus is configured to apply a filtering to the plurality of previously decoded values, and / or127.wherein the apparatus is configured to apply a filtering to a plurality of predicted template values used for a determination of one or more prediction parameters.
29. The apparatus (100) according to claim 28,129.wherein the filtering is configured to provide a filtered value at a given position using one or more input values at one or more positions preceding the given position, and130.wherein the filtering is configured to provide a filtered value at a given position using one or more input values at one or more positions following the given position.
30. The apparatus (100) according to any of claims 28 to 29,132.wherein the apparatus is configured to perform the filtering using a N-tap filter.
31. The apparatus (100) according to any of claims 28 to 30,134.wherein the apparatus is configured to obtain an extended portion of prediction values, which comprises more values than a filtered portion of prediction values, and wherein the apparatus is configured to apply the filtering to the extended portion of prediction values, to obtain the filtered portion of prediction values; or135.wherein the apparatus is configured to obtain an extended portion of previously decoded values, which comprises more values than a filtered portion of previously decoded values, and wherein the apparatus is configured to apply the filtering to the extended portion of previously decoded values, to obtain the filtered portion of previously decoded values; or136.wherein the apparatus is configured to obtain an extended template portion, which comprises more values than a filtered template portion, and137.wherein the apparatus is configured to apply the filtering to the extended template portion, to obtain the filtered template portion.
32. The apparatus (100) according to any of claims 28 to 31,139.wherein the apparatus is configured to selectively obtain one or more sample values of the extended portion of prediction values using an extrapolation if one or more sample values that would be required to obtain the extended portion of prediction values are not available; or140.wherein the apparatus is configured to selectively obtain one or more sample values of an extended portion of previously decoded values using an extrapolation if one or more sample values that would be required to obtain the extended portion of previously decoded values are not available; or141.wherein the apparatus is configured to selectively obtain one or more sample values of an extended template portion using an extrapolation if one or more sample values that would be required to obtain the extended template portion are not available.
33. The apparatus (100) according to any of claims 28 to 32,143.wherein the apparatus is configured to obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation if144.iStart - offsetValFirst < fPdl,145.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained,146.wherein offsetValFirst describes a temporal offset of previously decoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdl describes a left-sided extension of the filtering.
34. The apparatus (100) according to any of claims 28 to 33,148.wherein the apparatus is configured to obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation if149.iStart - offsetValFirst < fPdR,150.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained,151.wherein offsetValFirst describes a temporal offset of previously decoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and152.wherein fPdR describes a right-sided extension of the filtering.
35. The apparatus (100) according to any of claims 28 to 34,154.wherein the apparatus is configured to obtain one or obtain one or more sample values of the extended template portion using an extrapolation if155.iStart - offsetValFirst -templateSize< fPdl,156.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained,157.wherein offsetValFirst describes a temporal offset of previously decoded values of the first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and158.wherein fPdl describes a left-sided extension of the filtering; and159.wherein templateSize describes an extension of the template.
36. The apparatus (100) according to any of claims 28 to 35,160.wherein filter coefficients of the filtering are defined as {-3,0,19,32,19,0,-3,0}.
37. The apparatus (100) according to any of claims 28 to 36,162.wherein filter coefficients of the filtering are defined as {-1, -4, 8, 29, 29, 8, -4,-1}.
38. The apparatus (100) according to any of claims 28 to 37,164.wherein the apparatus is configured to switch the filtering between a first filter characteristic emphasizing a single filter input value over all other filter input values in an output value of the filter and a second filter characteristic equally weighting two or more filter input values in an output value of the filter.
39. The apparatus (100) according to any of claims 28 to 38,166.wherein the apparatus is configured to switch between the first filter characteristic and the second filter characteristic in dependence on a signaling value included in the encoded representation (101, 302).
40. The apparatus (100) according to any of claims 28 to 39,168.wherein the apparatus is configured to selectively enable and disable the filtering in dependence on a signaling value included in the encoded representation (101, 302).
41. The apparatus (100) according to one of claims 28 to 40,170.wherein the apparatus is configured to obtain the prediction values pred [i] for the current portion of the current channel signal according to171.pred[ i ]172.= Clip3(minPredVal, maxPredVal, p[ i ]) for 0 <= i < blockSize173.wherein174.p[ i ] = ref[ firstPrevCh ][ blockPos + i ]175.or wherein p[ i ] = ( ref[ firstPrevCh ][ blockPos + i ] + ref[ secondPrevCh ][ blockPos + i ] + 1 ) » 1176.wherein Clip3 is a clipping function restricting the prediction values to a range defined by a minimum boundary value minPredVal and a maximum boundary value maxPredVal; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal;177.wherein tSize designates a size of a template portion;178.wherein firstPrevCh is a channel index of a first other channel;179.wherein I is a running variable;180.wherein ref [firstPrevCh][] is a vector or an array of previously decoded values of the first other channel;181.wherein ref [secondPrevCh][] is a vector or an array of previously decoded values of the second other channel.
42. The apparatus (100) according to one of claims 28 to 41,183.wherein the apparatus is configured to obtain the prediction values pred [i] for the current portion of the current channel signal according to184.pred[ i ]185.= Clip3( minPredVal, maxPredVal, (X^s=zop[-fPdL + i + k] • CCFiltCoeffs[k] + 32) » 6) wherein the apparatus is configured to perform an extrapolation to obtain p[-f PdL+i] with 0<=i<fPdL if blockPos<fPdl,186.wherein the apparatus is configured to optain p[] according to187.p[ -fPdL + i ] = ref[ firstPrevCh ][ blockPos -fPdL + i ] for 0 <= i < fPdL188.or according to189.p[ -fPdL + i ] = ( ref[ firstPrevCh ][ blockPos -fPdL + i ] + ref[ secondPrevCh ][ blockPos -fPdL + i ]+ 1 ) »1 for 0 <= i < fPdL190.if blockPos>=fPdl191.wherein Clip3 is a clipping function restricting the prediction values to a range defined by a minimum boundary value minPredVal and a maximum boundary value maxPredVal; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal;192.wherein tSize designates a size of a template portion;193.wherein firstPrevCh is a channel index of a first other channel;194.wherein I is a running variable;195.wherein ref [firstPrevCh][] is a vector or an array of previously decoded values of the first other channel;196.wherein ref [secondPrevCh][] is a vector or an array of previously decoded values of the second other channel;197.wherein fPdL is a left-sided extension of a filter;198.wherein fSz is an extension of the filter;199.wherein BMFiltCoeffs[][] is an array of filter coefficients.
43. The apparatus (100) according to one of claims 28 to 42,201.wherein the apparatus is configured to obtain an additive offset value offset according to202.offset = (sumDiff + (1 « (log2TSize - 1 ) ) ) » log2TSize203.wherein the apparatus is configured to obtain sumDiff according to204.sumDiff = ∑tSize−1i=0(currChTpl[i] − firstPrevChTpl[i])205.or according to206.sumDiff = ∑tSize−1i=0(currChTpl[i] − ((firstPrevChTpl[i] + secondPrevChTpl[i] + 1) ≫ 1))207.wherein208.currChTplf i ] = refCurrf blockPos - tSize + i ], with 0 <= i < tSize,209.wherein210.firstPrevChTpl [ i ] = ref[ firstPrevCh ][ blockPos - tSize + i ], with 0 <= i < tSize wherein211.secondPrevChTpl [ i ] = ref[ secondPrevCh ][ blockPos - tSize + i ], with 0 <= i< tSize wherein log2TSize is a logarithmic representation of a size of a template portion; wherein i is a running variable;212.wherein tSize is a representation of a size of the template portion;213.wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal;214.wherein ref [firstPrevCh][] is a vector or an array of previously decoded values of the first other channel;215.wherein ref [secondPrevCh][] is a vector or an array of previously decoded values of the second other channel.
44. The apparatus (100) according to one of claims 28 to 43,217.wherein the apparatus is configured to obtain the prediction values pred [i] for the current portion of the current channel signal according to218.pred[ i ] = Clip3( minPredVal, maxPredVal, p[ tSize +fPdL + i ] ) for 0 <= i < blockSize219.or according to220.pred[ i ] = Clip3( minPredVal, maxPredVal, ((2k=oP [tSize + i + k] • CCFiltCoeffs[k]) + 32) » 6) for 0 <= i < blockSize221.wherein222.p[ i ] = ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + offset for 0 <= i < blockSize + tSize +fPdL223.or wherein224.p[ i ] = ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + offset for fPdL <= i <blockSize + tSize +fPdL225.with an extrapolation for 0 <= i < fPdL226.or wherein227.p[ i ] = ( ( ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + ref[ chldxScnd ][ blockPos - tSize -fPdL + i ] +1 ) » 1 )+ offset for 0 <= i < blockSize + tSize +fPdL228.or wherein p[ i ] = ( ( ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + ref[ chldxScnd ][ blockPos - tSize -fPdL + i ] +1 ) » 1 )+ offset forfPdL <= i <blockSize + tSize +fPdL229.with an extrapolation for 0 <= i < fPdL230.or wherein231.p[ i ] = ( v[ 0 ]*ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v[ 1 ] + ccShiftOffst) ) » ccShift232.for 0 <= i < blockSize + tSize +fPdL233.or wherein234.p[ i ] = (v[ 0 ]*ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v[ 1 ] + ccShiftOffst) ) » ccShift for fPdL <= i <blockSize + tSize +fPdL235.with an extrapolation for 0 <= i < fPdL236.or wherein237.p[ i ] = (v[ 0 ]*ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v[ 1 ]*238.ref[ chldxSecond ][ blockPos - tSize - fPdL + i ] + v[ 2 ]+ccShiftOffst) » ccShift239.for 0 <= i < blockSize + tSize +fPdL240.or wherein241.p[ i ] = (v[ 0 ]*ref[ chldxFirst ][ blockPos - tSize - fPdL + i ] + v[ 1 ]*242.ref[ chldxSecond ][ blockPos - tSize - fPdL + i ] + v[ 2 ]+ccShiftOffst) » ccShift243.for fPdL <= i < blockSize + tSize +fPdL244.with an extrapolation for 0 <= i < fPdL245.wherein Clip3 is a clipping function restricting the prediction values to a range defined by a minimum boundary value minPredVal and a maximum boundary value maxPredVal; wherein blockPos designates a time index of a first sample value of the current portion of the current channel signal;246.wherein tSize designates a size of a template portion;247.wherein chldxFirst is a channel index of a first other channel;248.wherein chldxsecond is a channel index of a second other channel;249.wherein I is a running variable; wherein ref [ch I dxFirst][] is a vector or an array of previously decoded values of the first other channel;250.wherein ref [chldxSecond][] is a vector or an array of previously decoded values of the second other channel;251.wherein fPdL is a left-sided extension of a filter;252.wherein fSz is an extension of the filter;253.wherein BMFiltCoeffs[][] is an array of filter coefficients;254.wherein v[0] is a weighting value describing a weight of a first contribution to the prediction; wherein v[1 ] is a weighting value describing a weight of a second contribution to the prediction;255.wherein v[2] is an additive offset value; and256.wherein ccShiftOffst is a predetermined value; and257.wherein ccShift is a predetermined shift value.
45. An apparatus (300) for obtaining an encoded representation (101, 302) on the basis of a multi-channel signal,258.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously encoded values (207, 214) of a first other channel and in dependence on a plurality of previously encoded values (208, 213) of a second other channel.
46. The apparatus (300) according to claim 45,260.wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using a weighted combination of a plurality of previously encoded values of the first other channel and of a plurality of previously encoded values of the second other channel.
47. The apparatus (300) according to any of claims 45 to 46,262.wherein the apparatus is configured to determine a first temporal offset value (209), defining which previously encoded values of the first other channel are used for obtaining the prediction values for a given temporal portion of the current signal, and263.wherein the apparatus is configured to encode a first temporal offset value information, comprising an information about the first temporal offset value, in the encoded representation (101, 302), and264.wherein the apparatus is configured to determine a second temporal offset value (210), defining which previously encoded values of the second other channel are used for determining the prediction values for the given temporal portion of the current signal, and265.wherein the encoder is configured to encode a second temporal offset value information, comprising an information about the second temporal offset value in the encoded representation.
48. The apparatus (300) according to any of claims 45 to 47,wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using an additive offset value.
49. The apparatus (300) according to any of claims 45 to 48,268.wherein the apparatus is configured to determine the additive offset value in dependence on a previously encoded portion of the current channel signal and in dependence on corresponding previously encoded portions of the first other channel and of the second other channel.
50. The apparatus (300) according to any of claims 45 to 49,270.wherein the apparatus is configured to determine a first weighting value, defining a contribution of a plurality of previously encoded values of the first other channel in a weighted combination, in dependence on a previously encoded portion of the current channel signal and in dependence on corresponding previously encoded portions of the first other channel and of the second other channel, and271.wherein the apparatus is configured to determine a second weighting value, defining a contribution of a plurality of previously encoded values of the second other channel in a weighted combination, in dependence on the previously encoded portion of the current channel signal and in dependence on corresponding previously encoded portions of the first other channel and of the second other channel.
51. The apparatus (300) according to any of claims 45 to 50,273.wherein the apparatus is configured to determine the additive offset value using a minimization of a prediction error (215) between a previously determined template portion (211) of the current channel signal and predicted values for the template portion.
52. The apparatus (300) according to any of claims 45 to 51,275.wherein the apparatus is configured to determine the additive offset value using a computation of a mean difference value between a previously determined template portion of the current channel signal and predicted values for the template portion.
53. The apparatus (300) according to any of claims 45 to 52,wherein the apparatus is configured to determine277.a first weighting value, defining a contribution of a plurality of previously encoded values of the first other channel in a weighted combination, and278.a second weighting value, defining a contribution of a plurality of previously encoded values of the second other channel in a weighted combination,279.using a minimization of a prediction error (215) between a previously determined template portion (211) of the current channel signal and predicted values for the template portion.
54. The apparatus (300) according to any of claims 45 to 53,281.wherein the apparatus is configured to determine282.a first weighting value, defining a contribution of a plurality of previously encoded values of the first other channel in a weighted combination, and283.a second weighting value, defining a contribution of a plurality of previously encoded values of the second other channel in a weighted combination, and284.an additive offset value,285.using a solution of a linear equation system.
55. The apparatus (300) according to any of claims 45 to 54,287.wherein the apparatus is configured to determine288.a first weighting value, defining a contribution of a plurality of previously encoded values of the first other channel in a weighted combination, and289.a second weighting value, defining a contribution of a plurality of previously encoded values of the second other channel in a weighted combination, and an additive offset value290.using a solution of a linear equation system defined as294. 296.where C is a symmetric 3x3 matrix and v is a column vector of size 3 with the following elements:
299. 301.Y[cprev1][iStart - offsetValSecond — templateSize + j ],302. 304.wherein templateSize describes an extension of the template;305.wherein Y[c][i] describes an array or vector of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index;306.wherein cprevO is a channel index of the first other channel;307.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained; wherein offsetValFirst describes a temporal offset of previously encoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;308.wherein offsetValSecond describes a temporal offset of previously encoded values of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;309.wherein cprevl is a channel index of the second other channel;310.wherein b is the additive offset value.
56. The apparatus (300) according to any of claims 45 to 55,312.wherein the apparatus is configured to set a first weighting value, defining a contribution of a plurality of previously encoded values of the first other channel in a weighted combination to a first default value, and313.wherein the apparatus is configured to set a second weighting value, defining a contribution of a plurality of previously encoded values of the second other channel in a weighted combination to a second default value.
57. The apparatus (300) according to any of claims 45 to 56,315.wherein the apparatus is configured to switch between316.a first mode,317.in which the apparatus determines a first weighting value, defining a contribution of a plurality of previously encoded values of the first other channel in a weighted combination, in dependence on a previously encoded portion of the current channel signal and in dependence on corresponding previously encoded portions of the first other channel and of the second other channel, and318.in which the apparatus determines a second weighting value, defining a contribution of a plurality of previously encoded values of the second other channel in a weighted combination, in dependence on the previously encoded portion of the current channel signal and in dependence on corresponding previously encoded portions of the first other channel, and a second mode,319.in which the apparatus uses predetermined default values for the first weighting value and the second weighting value,320.as a selected mode, and321.wherein the apparatus is configured to encode a signaling information, indicating the selected mode.
58. The apparatus (300) according to any of claims 45 to 57,323.wherein the apparatus is configured to switch between a324.single hypothesis mode in which the apparatus is configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously encoded values of a single other channel, and325.a multi hypothesis mode, in which the apparatus is configured to obtain a plurality of prediction values for a current channel signal in dependence on a plurality of previously encoded values of the first other channel and in dependence on a plurality of previously encoded values of the second other channel,326.as a selected mode, and327.wherein the apparatus is configured to encode a signaling information, indicating the selected mode.
59. The apparatus (300) according to any of claims 45 to 58,329.wherein the apparatus is configured to obtain a channel index determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a first channel used to obtain a plurality of prediction values for a previous portion of the current signal, and wherein the apparatus is configured to obtain a channel index determining the second other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a second channel used to obtain the plurality of prediction values for the previous portion of the current signal.
60. An apparatus (300) for obtaining an encoded representation (101, 302) on the basis of a multi-channel signal,330.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously encoded values of a first other channel (207, 214);331.wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using a weighting of a plurality of previously encoded values of the first other channel, and332.wherein the apparatus is configured to set a first weighting value, defining a weighting of a plurality of previously encoded values of the first other channel to a first default value.
61. The apparatus (300) according to claim 60,334.wherein the apparatus is configured to switch between335.a first mode,336.in which the apparatus determines the first weighting value, defining the weighting of a plurality of previously encoded values of the first other channel, in dependence on a previously encoded portion of the current channel signal and in dependence on corresponding previously encoded portions of the first other channel, and337.a second mode,338.in which the apparatus uses the predetermined default values for the first weighting value,339.as a selected mode, and340.wherein the apparatus is configured to encode a signaling information, indicating the selected mode.
62. The apparatus (300) according to any of claims 60 to 61,wherein the apparatus is configured to obtain the plurality of prediction values for the current channel signal using an additive offset value, and342.wherein the apparatus is configured to determine the additive offset value in dependence on a previously encoded portion of the current channel signal and in dependence on a corresponding previously encoded portion of the first other channel both in the first mode and in the second mode.
63. The apparatus (300) according to any of claims 60 to 62,344.wherein the apparatus is configured to determine the additive offset value using a computation of a mean difference value between a previously determined template portion of the current channel signal and predicted values for the template portion.
64. The apparatus (300) according to any of claims 60 to 63,346.wherein the apparatus is configured to obtain the additive offset value b according to350. 352.— Y[cprev][iStart - offsetValFirst — templateSize + j ]),353.0 < j < templateSize.354.wherein templateSize describes an extension of the template;355.wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index;356.wherein cprev is a channel index of the first other channel;357.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained;358.wherein offsetValFirst describes a temporal offset of previously encoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices, or359.wherein the apparatus is configured to obtain the additive offset value b according to360.
361. wherein templateSize describes an extension of the template;362.wherein Y[c][i] describes a vector or array of decoded values, wherein c denotes a channel index of the current channel and i denotes a sample index;363.wherein cprevO is a channel index of the first other channel;364.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained;365.wherein offsetValFirst describes a temporal offset of previously encoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;366.wherein offsetValSecond describes a temporal offset of previously encoded values of the second other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices;367.wherein cprevl is a channel index of the second other channel;368.wherein b is the additive offset value.
65. An apparatus (300) for obtaining an encoded representation (101, 302) on the basis of a multi-channel signal,369.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously encoded values of a first other channel (207, 214);370.wherein the apparatus is configured to obtain a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
66. The apparatus (300) according to claim 65,372.wherein the apparatus is configured to obtain the channel index determining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a predictive encoding.
67. The apparatus (300) according to any of claims 65 to 66,374.wherein the apparatus is configured to obtain the channel index determining the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal, in dependence on the channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal using a difference information describing a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and a channel index of the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal.
68. The apparatus (300) according to any of claims 65 to 67,376.wherein the apparatus is configured to determine a channel difference information which describes a difference between a channel index of the channel used to obtain the plurality of prediction values for the previous portion of the current signal and a channel index of the first other channel, which is used to obtain the plurality of prediction values for the current portion of the current signal; and377.wherein the apparatus is configured to encode a channel difference information in the encoded representation (101, 302).
69. An apparatus (300) for obtaining an encoded representation (101, 302) on the basis of a multi-channel signal,378.wherein the apparatus is configured to obtain a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously encoded values of a first other channel (207, 214);379.wherein the apparatus is configured to apply a filtering to the plurality of prediction values, and / or380.wherein the apparatus is configured to apply a filtering to the plurality of previously encoded values, and / or381.wherein the apparatus is configured to apply a filtering to a plurality of predicted template values used for a determination of one or more prediction parameters.
70. The apparatus (300) according to claim 69,383.wherein the filtering is configured to provide a filtered value at a given position using one or more input values at one or more positions preceding the given position, and384.wherein the filtering is configured to provide a filtered value at a given position using one or more input values at one or more positions following the given position.
71. The apparatus (300) according to any of claims 69 to 70,386.wherein the apparatus is configured to perform the filtering using a N-tap filter.
72. The apparatus (300) according to any of claims 69 to 71,388.wherein the apparatus is configured to obtain an extended portion of prediction values, which comprises more values than a filtered portion of prediction values, and389.wherein the apparatus is configured to apply the filtering to the extended portion of prediction values, to obtain the filtered portion of prediction values; or wherein the apparatus is configured to obtain an extended portion of previously encoded values, which comprises more values than a filtered portion of previously encoded values, and390.wherein the apparatus is configured to apply the filtering to the extended portion of previously encoded values, to obtain the filtered portion of previously encoded values; or391.wherein the apparatus is configured to obtain an extended template portion, which comprises more values than a filtered template portion, and392.wherein the apparatus is configured to apply the filtering to the extended template portion, to obtain the filtered template portion.
73. The apparatus (300) according to any of claims 69 to 72,394.wherein the apparatus is configured to selectively obtain one or more sample values of the extended portion of prediction values using an extrapolation if one or more sample values that would be required to obtain the extended portion of prediction values are not available; or395.wherein the apparatus is configured to selectively obtain one or more sample values of an extended portion of previously encoded values using an extrapolation if one or more sample values that would be required to obtain the extended portion of previously encoded values are not available; or396.wherein the apparatus is configured to selectively obtain one or more sample values of an extended template portion using an extrapolation if one or more sample values that would be required to obtain the extended template portion are not available.
74. The apparatus (300) according to any of claims 69 to 73,398.wherein the apparatus is configured to obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation if399.iStart - offsetValFirst < fPdl, wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained,400.wherein offsetValFirst describes a temporal offset of previously encoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and401.wherein fPdl describes a left-sided extension of the filtering.
75. The apparatus (300) according to any of claims 69 to 74,403.wherein the apparatus is configured to obtain one or obtain one or more sample values of the extended portion of prediction values using an extrapolation if404.iStart - offsetValFirst < fPdR,405.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained,406.wherein offsetValFirst describes a temporal offset of previously encoded values of a first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and407.wherein fPdR describes a right-sided extension of the filtering.
76. The apparatus (300) according to any of claims 69 to 75,409.wherein the apparatus is configured to obtain one or obtain one or more sample values of the extended template portion using an extrapolation if410.iStart - offsetValFirst -templateSize< fPdl,411.wherein iStart is a sample index of a first sample of a sequence of values of the current channel signal to be obtained,412.wherein offsetValFirst describes a temporal offset of previously encoded values of the first other channel when compared to sample values of the current channel signal to be obtained, in terms of sample indices; and wherein fPdl describes a left-sided extension of the filtering; and413.wherein templateSize describes an extension of the template.
77. The apparatus (300) according to any of claims 69 to 76,415.wherein filter coefficients of the filtering are defined as {-3,0,19,32,19,0,-3,0}.
78. The apparatus (300) according to any of claims 69 to 77,417.wherein filter coefficients of the filtering are defined as {-1, -4, 8, 29, 29, 8, -4,-1}.
79. The apparatus (300) according to any of claims 69 to 78,419.wherein the apparatus is configured to switch the filtering between a first filter characteristic emphasizing a single filter input value over all other filter input values in an output value of the filter and a second filter characteristic equally weighting two or more filter input values in an output value of the filter.
80. The apparatus (300) according to any of claims 69 to 79,421.wherein the apparatus is configured to switch between the first filter characteristic and the second filter characteristic in dependence on a signaling value,422.wherein the apparatus is configured to encode the signaling value in the encoded representation (101, 302).
81. The apparatus (300) according to any of claims 69 to 80,424.wherein the apparatus is configured to selectively enable and disable the filtering in dependence on a signaling value,425.wherein the apparatus is configured to encode the signaling value in the encoded representation (101, 302).
82. A method for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),426.wherein the method comprises obtaining a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values (207, 214) of a first other channel and in dependence on a plurality of previously decoded values (208, 213) of a second other channel.
83. A method for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),428.wherein the method comprises obtaining a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values (207, 214) of a first other channel;429.wherein the method comprises obtaining the plurality of prediction values for the current channel signal using a weighting of a plurality of previously decoded values of the first other channel, and430.wherein the method comprises setting a first weighting value, defining a weighting of a plurality of previously decoded values of the first other channel to a first default value.
84. A method for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),432.wherein the method comprises obtaining a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values (207, 214) of a first other channel;433.wherein the method comprises obtaining a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
85. A method for obtaining a decoded multi-channel signal on the basis of an encoded representation (101, 302),wherein the method comprises obtaining a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously decoded values (207, 214) of a first other channel;435.wherein the method comprises applying a filtering to the plurality of prediction values, and / or436.wherein the method comprises applying a filtering to the plurality of previously decoded values, and / or437.wherein the method comprises applying a filtering to a plurality of predicted template values.
86. A method for obtaining an encoded representation (101, 302) on the basis of a multichannel signal,439.wherein the method comprises obtaining a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously encoded values (207, 214) of a first other channel and in dependence on a plurality of previously encoded values (208, 213) of a second other channel.
87. A method for obtaining an encoded representation (101, 302) on the basis of a multichannel signal,441.wherein the method comprises obtaining a plurality of prediction values (206) for a current channel signal in dependence on a plurality of previously encoded values (207, 214) of a first other channel;442.wherein the method comprises obtaining the plurality of prediction values for the current channel signal using a weighting of a plurality of previously encoded values of the first other channel, and443.wherein the method comprises setting a first weighting value, defining a weighting of a plurality of previously encoded values of the first other channel to a first default value.
88. A method for obtaining an encoded representation (101, 302) on the basis of a multichannel signal,wherein the method comprises obtaining a plurality of prediction values for a current channel signal in dependence on a plurality of previously encoded values (207, 214) of a first other channel;445.wherein the method comprises obtaining a channel index defining the first other channel, which is used to obtain the plurality of prediction values for a current portion of the current signal, in dependence on a channel index of a channel used to obtain a plurality of prediction values for a previous portion of the current signal.
89. A method for obtaining an encoded representation (101, 302) on the basis of a multichannel signal,447.wherein the method comprises obtaining a plurality of prediction values for a current channel signal in dependence on a plurality of previously encoded values (207, 214) of a first other channel;448.wherein the method comprises applying a filtering to the plurality of prediction values, and / or449.wherein the method comprises applying a filtering to the plurality of previously encoded values, and / or450.wherein the method comprises applying a filtering to a plurality of predicted template values used for a determination of one or more prediction parameters.
90. A computer program for performing the method according to any of claims 82, 83, 84, 85, 86, 87, 88 or 89 when the computer program runs on a computer.
91. An encoded representation (101, 302), comprising:452.an encoded representation of a plurality of signal values of a signal; and453.a signaling information indicating whether a prediction, which is to be used to obtain a plurality of prediction values for a portion of a channel signal, should be based on a single other channel signal, or on two other channel signals.
92. The encoded representation (101, 302) according to claim 91,455.wherein the encoded representation comprises an encoded representation of one or more temporal prediction offset values.
93. An encoded representation (101, 302), comprising:457.an encoded representation of a plurality of signal values of a signal; and458.a signaling information indicating whether a decoder decoding the encoded representation should operate459.in a first mode, in which the decoder determines a first weighting value, defining a contribution of a plurality of previously decoded values of the first other channel in a weighted combination, in dependence on a previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel, defining a contribution of a plurality of previously decoded values of the second other channel in a weighted combination, in dependence on the previously decoded portion of the current channel signal and in dependence on corresponding previously decoded portions of the first other channel and of the second other channel, or460.in a second mode, in which the apparatus uses a predetermined default value for the first weighting value.
94. An encoded representation (101, 302), comprising:462.an encoded representation of a plurality of signal values of a signal; and463.a signaling information indicating whether a filtering should be applied in a decoder decoding the encoded representation when determining a prediction for a current channel signal on the basis of one or more other channel signals.
95. An encoded representation (101, 302) according to claim 94,465.wherein the encoded representation comprises a filter index information.
96. An encoded representation (101, 302) according to claim 95,466.wherein the filter index information is configured to allow for a selection of an interpolation filter for time interpolating between two samples of a reference signal or of a prediction signal when determining a prediction for a current channel signal on the basis of one or more other channel signals.
97. An encoded representation (101, 302), comprising:468.an encoded representation of a plurality of signal values of a signal; and469.a channel difference information, which describes a difference between a channel index of the channel that was to be used to obtain a plurality of prediction values for a previous portion of a given signal and a channel index of a channel, which is to be used to obtain a plurality of prediction values for a current portion of the given signal.
98. The encoded representation (101, 302) of claim 97,471.wherein the channel difference information comprises a first signaling information, indicating whether a difference between a channel index defining a channel, which is to be used to obtain the plurality of prediction values for a current portion of the given signal, and a channel index of a channel that was to be used to obtain a plurality of prediction values for a previous portion of the given signal, is different from 0.
99. The encoded representation (101, 302) of claim 98,473.wherein the channel difference information comprises474.- a second signaling information describing a magnitude of the difference between a channel index defining the channel, which is to be used to obtain the plurality of prediction values for a current portion of the given signal, and a channel index of a channel that was to be used to obtain a plurality of prediction values for a previous portion of the given signal, and475.- a third signaling information describing a sign of the difference between a channel index defining the channel, which is to be used to obtain the plurality of prediction values for a current portion of the given signal, and a channel index of a channel that was to be used to obtain a plurality of prediction values for a previous portion of the given signal.
100. Data stream having encoded therein an encoded representation (101, 302) using the method according to any of claims 86, 87, 88 or 89.
Citation Information
Patent Citations
A video multiplexing transcoding method based on HEVC
CN107404648B
Audio encoding device, audio encoding method, and computer-readable medium storing audio-encoding computer program
US20120078640A1
Audio encoding device and audio coding method
US20150149185A1
Transform-based block-wise coding using prediction
WO2025149676A1